Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมตรวจสอบคำคู่คำใด ๆ ที่ใกล้เคียงกันในPython


สมมติว่าเรามีรายการสตริงตัวพิมพ์เล็กที่เรียกว่าคำ ซึ่งแต่ละคำมีความยาวเท่ากัน เราต้องตรวจสอบว่ามี 2 สตริงที่ต่างกันเพียงอักขระเดียวหรือไม่

ดังนั้น หากอินพุตเป็นเหมือนคำ =["seed", "pick", "lick", "root", "live"] ผลลัพธ์จะเป็น True เนื่องจาก "pick" และ "lick" เกือบจะเหมือนกัน

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • s :=ชุดใหม่
  • สำหรับแต่ละคำในคำ ทำ
    • สำหรับแต่ละดัชนี i และคำ w ในคำ ให้ทำ
      • หากสตริงย่อยของ word[จากดัชนี 0 ถึง i - 1] เชื่อม "*" คำต่อกัน[จากดัชนี i + 1 ถึงปลาย] มีอยู่ใน s ดังนั้น
        • คืนค่า True
      • มิฉะนั้น
        • แทรก (คำ[จากดัชนี 0 ถึง i-1] เชื่อม "*" ต่อคำ[จากดัชนี i + 1 ถึงปลาย]) เป็น s
  • คืนค่าเท็จ

ตัวอย่าง

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

def solve(words):
   s = set()
   for word in words:
      for i, w in enumerate(word):
         if word[:i] + "*" + word[i + 1 :] in s:
            return True
         else:
            s.add(word[:i] + "*" + word[i + 1 :])

   return False

words = ["seed", "pick", "lick", "root", "live"]
print(solve(words))

อินพุต

["seed", "pick", "lick", "root", "live"]

ผลลัพธ์

True