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

Kiểm tra xem chuỗi 2 ký tự có thể tạo từ các từ cho trước hay không trong Python


Giả sử chúng ta có chuỗi s độ dài 2 và danh sách từ w, mọi từ trong w đều độ dài 2. Cần kiểm tra xem có thể nối các từ trong w sao cho chuỗi kết quả chứa s làm chuỗi con hay không.

Ví dụ, s = "no", w = ["ol", "on", "ni", "to"], đầu ra True vì có thể nối "on" + "ol" = "onol" chứa "no".

Các bước giải quyết:

  • n := số từ trong w.
  • char_0 := False, char_1 := False.
  • Duyệt i từ 0 đến n-1:
    • Nếu w[i] == s, trả về True.
    • Nếu s[0] == w[i][1], char_0 = True.
    • Nếu s[1] == w[i][0], char_1 = True.
    • Nếu char_0 và char_1 đều True, trả về True.
  • Trả về False.

Xem ví dụ dưới đây để hiểu rõ hơn:

Ví dụ

def solve(s, w):
    n = len(w)
    char_0 = False
    char_1 = False
    for i in range(n):
        if w[i] == s:
            return True
        if s[0] == w[i][1]:
            char_0 = True
        if s[1] == w[i][0]:
            char_1 = True
        if char_0 and char_1:
            return True
    return False

s = "no"
w = ["ol", "on", "ni", "to"]
print(solve(s, w))

Đầu vào

"no", ["ol", "on", "ni", "to"]

Đầu ra

True