Cho số n, tìm giá trị thứ n của dãy chuỗi. Dãy bắt đầu bằng "xxy" và phát triển theo quy tắc lặp 3 bước:
- Bước 0 (mod 3 = 0): Nhân đôi chuỗi (nối với chính nó)
- Bước 1 (mod 3 = 1): Đảo ngược chuỗi
- Bước 2 (mod 3 = 2): Hoán đổi tất cả 'x' ↔ 'y'
Ví dụ: n = 5 → kết quả "yyxyyxyyxyyx".
Các bước giải quyết
i = 0,ret = "xxy"- Khi
i < n:- Nếu
i % 3 == 0:ret += ret - Nếu
i % 3 == 1:ret = ret[::-1] - Nếu
i % 3 == 2: tạo chuỗi mới hoán đổi 'x'↔'y' i += 1
- Nếu
- Trả về
ret
Ví dụ mã Python
class Solution:
def solve(self, s):
i = 0
ret = "xxy"
while i < s:
if i % 3 == 0:
ret += ret
elif i % 3 == 1:
ret = ret[::-1]
else:
new_stringy = ""
for c in ret:
if c == "x":
new_stringy += "y"
else:
new_stringy += "x"
ret = new_stringy
i += 1
return ret
ob = Solution()
print(ob.solve(5))
Đầu vào
5
Đầu ra
yyxyyxyyxyyx