Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình kiểm tra xem có cặp từ nào gần giống nhau trong Python hay không

Giả sử chúng ta có một danh sách các chuỗi chữ thường được gọi là các từ trong đó mỗi từ có cùng độ dài. Chúng tôi phải kiểm tra xem có hai chuỗi chỉ khác nhau về một ký tự hay không.

Vì vậy, nếu đầu vào giống như words =["seed", "pick", "liếm", "root", "live"], thì đầu ra sẽ là True, vì "pick" và "liếm" gần như giống nhau.

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • s:=một tập hợp mới
  • đối với mỗi từ trong các từ, hãy thực hiện
    • đối với mỗi chỉ mục i và từ w trong word, hãy thực hiện
      • nếu chuỗi con của từ [từ chỉ mục 0 đến i - 1] nối "*" từ nối [từ chỉ mục i + 1 đến cuối] có trong s, thì
        • trả về True
      • nếu không,
        • chèn (từ [từ chỉ mục 0 đến i-1] nối "*" từ nối [từ chỉ mục i + 1 đến cuối]) vào s
  • trả về Sai

Ví dụ

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

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))

Đầu vào

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

Đầu ra

True