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

Kiểm tra hai chuỗi có phải là phiên bản xoay vòng của nhau trong Python

Cho hai chuỗi tiếng Anh s và t (có thể chứa chữ hoa/chữ thường). Cần kiểm tra xem một chuỗi có phải là phiên bản xoay vòng (rotation) của chuỗi kia hay không.

Ví dụ: s = "koLKAta", t = "KAtakoL" → kết quả True.

Ý tưởng

Nếu t là xoay vòng của s, thì t chắc chắn xuất hiện trong chuỗi s + s (nối s với chính nó). Ngoài ra, hai chuỗi phải cùng độ dài.

Thuật toán

  1. Nếu len(s) != len(t): trả về False.
  2. Gán s = s + s.
  3. Trả về True nếu t nằm trong s, ngược lại False.

Mã Python

def solve(s, t):
    if len(s) != len(t):
        return False
    s = s + s
    return True if s.find(t) != -1 else False

s = "koLKAta"
t = "KAtakoL"
print(solve(s, t))  # True

Đầu vào / Đầu ra

Input: "koLKAta", "KAtakoL"

Output: True