Giả sử chúng ta có một chuỗi s độ dài n. Chúng ta phải tìm tất cả các chuỗi xoay bằng cách xoay chúng 1 vị trí, 2 vị trí ... n vị trí.
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 ta sẽ làm theo các bước sau:
- res := danh sách mới
- n := độ dài s
- với i từ 0 đến n, thực hiện
- s := (substring s từ index 1 đến n-1) nối s[0]
- thêm s vào cuối res
- trả về res
Ví dụ
Hãy xem 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']