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

Chương trình để tìm hiểu xem các chuỗi được cung cấp có khác nhau bởi một ký tự ở cùng vị trí trong Python hay không

Giả sử, chúng ta được cung cấp một mảng chứa một số chuỗi có cùng độ dài. Chúng tôi phải tìm xem có bất kỳ hai chuỗi được cung cấp nào khác nhau bởi một ký tự ở cùng một vị trí hay không. Nếu có sự khác biệt này, chúng tôi trả về true hoặc nếu không, chúng tôi trả về false.

Vì vậy, nếu đầu vào giống như dict =['pqrs', 'prqs', 'paqs'], thì đầu ra sẽ là True. Đầu ra được tạo ra là Đúng vì các chuỗi được liệt kê trong đầu vào đều khác nhau về chỉ số 1. Vì vậy, nếu lấy hai cặp bất kỳ, thì sẽ có sự khác biệt ở cùng một vị trí.

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

  • seens:=a new set

  • cho mỗi từ trong dict, làm

    • đối với mỗi chỉ mục i và ký tự c trong word, hãy thực hiện

      • masked_word:=word [từ chỉ mục 0 đến i] + '.' + từ [từ chỉ mục i + 1 đến cuối chuỗi]

      • nếu masked_word xuất hiện trong seens, thì

        • trả về True

      • nếu không,

        • thêm (masked_word) để tìm kiếm

  • trả về Sai

Ví dụ (Python)

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

def solve(dict):
   seens = set()
   for word in dict:
      for i, c in enumerate(word):
         masked_word = word[:i] + '.' + word[i+1:]
         if masked_word in seens:
            return True
         else:
            seens.add(masked_word)
   return False

print(solve(['pqrs', 'prqs', 'paqs']))

Đầu vào

['pqrs', 'prqs', 'paqs']

Đầu ra

True