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