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

Kiểm tra xem chuỗi có thể tạo được bằng cách xoay chuỗi khác 2 vị trí hay không trong Python


Giả sử chúng ta có hai chuỗi s và t. Cần kiểm tra xem có thể得到 s bằng cách xoay t 2 vị trí sang trái hoặc sang phải hay không.

Ví dụ, s = "kolkata", t = "takolka", đầu ra True vì xoay "takolka" sang trái 2 lần được "kolkata".

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

  • Nếu độ dài s != độ dài t, trả về False.
  • right_rot := chuỗi rỗng, left_rot := chuỗi rỗng.
  • l := độ dài t.
  • left_rot := t[l-2:] + t[0:l-2] (xoay trái 2).
  • right_rot := t[2:] + t[0:2] (xoay phải 2).
  • Trả về True nếu s == right_rot hoặc s == left_rot, ngược lại False.

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

Ví dụ

def solve(s, t):
    if len(s) != len(t):
        return False
    l = len(t)
    left_rot = t[l - 2:] + t[0:l - 2]
    right_rot = t[2:] + t[0:2]
    return s == right_rot or s == left_rot

s = "kolkata"
t = "takolka"
print(solve(s, t))

Đầu vào

"kolkata", "takolka"

Đầu ra

True