Giả sử chúng ta có hai chuỗi s và t. Chúng ta phải kiểm tra xem chúng ta có thể đến được không bằng cách xoay hai vị trí theo bất kỳ hướng nào sang trái hoặc phải.
Vì vậy, nếu đầu vào giống như s ="kolkata" t ="takolka", thì đầu ra sẽ là True vì chúng ta có thể xoay "takolka" sang bên trái hai lần để lấy "kolkata".
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- nếu kích thước của s không giống với kích thước của t, thì
- trả về Sai
- right_rot:=chuỗi trống
- left_rot:=chuỗi trống
- l:=kích thước của t
- left_rot:=left_rot nối t [từ chỉ mục l - 2 đến cuối] nối t [từ chỉ mục 0 đến l - 3]
- right_rot:=right_rot nối t [từ chỉ mục 2 đến cuối] nối t [từ chỉ mục 0 đến 1]
- trả về true khi (s giống với right_rot hoặc s giống với left_rot) nếu không thì false
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
Ví dụ
def solve(s, t): if (len(s) != len(t)): return False right_rot = "" left_rot = "" l = len(t) left_rot = (left_rot + t[l - 2:] + t[0: l - 2]) right_rot = 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