Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Mẫu chuỗi sau khi nhân đôi, đảo ngược và hoán đổi trong Python

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:

  1. Bước 0 (mod 3 = 0): Nhân đôi chuỗi (nối với chính nó)
  2. Bước 1 (mod 3 = 1): Đảo ngược chuỗi
  3. 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
  • 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