Giả sử chúng ta có một chuỗi s có kích thước là n. Chúng ta phải tìm tất cả các chuỗi đã xoay bằng cách xoay chúng 1 chỗ, 2 chỗ ... n chỗ.
Vì vậy, nếu đầu vào là s ="hello", thì đầu ra sẽ là ['elloh', 'llohe', 'lohel', 'ohell', 'hello']
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- res:=một danh sách mới
- n:=kích thước của s
- đối với tôi trong phạm vi từ 0 đến n, thực hiện
- s:=(chuỗi con của s từ chỉ mục 1 đến n-1) nối s [0]
- chèn s vào cuối res
- trả lại res
Ví dụ
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
def solve(s): res = [] n = len(s) for i in range(0, n): s = s[1:n]+s[0] res.append(s) return res s = "hello" print(solve(s))
Đầu vào
hello
Đầu ra
['elloh', 'llohe', 'lohel', 'ohell', 'hello']