Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chương trình kiểm tra tồn tại cặp từ gần giống nhau Python

Cho danh sách words các chuỗi cùng độ dài. Kiểm tra có tồn tại hai chuỗi chỉ khác nhau ở đúng một vị trí không.

Ví dụ: words=["seed","pick","lick","root","live"] → True ("pick" và "lick" chỉ khác ở chữ cái đầu).

Giải thuật (Mặt nạ ký tự + Hash set)

  1. Với mỗi từ, tạo các biến thể bằng cách thay ký tự tại vị trí i bằng '*'
  2. Nếu biến thể đã có trong set → tìm thấy cặp gần giống
  3. Ngược lại thêm biến thể vào set

Ví dụ triển khai

def solve(words):
    seen = set()
    for word in words:
        for i, _ in enumerate(word):
            masked = word[:i] + "*" + word[i+1:]
            if masked in seen:
                return True
            seen.add(masked)
    return False

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

Đầu vào

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

Đầu ra

True