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
- Nếu
len(s) != len(t): trả vềFalse. - Gán
s = s + s. - Trả về
Truenếutnằm trongs, ngược lạiFalse.
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