Computer >> Máy Tính >  >> Lập trình >> Python

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

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