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

Chương trình mã hóa chuỗi sang dạng run-length trong Python


Cho chuỗi s, mã hóa bằng kỹ thuật run-length encoding: các ký tự lặp lại liên tiếp được thay bằng số lượng và ký tự.

Ví dụ, s = "BBBBAAADDCBB", đầu ra "4B3A2D1C2B".

Các bước giải quyết:

  • res := chuỗi rỗng.
  • tmp := ký tự đầu tiên của s.
  • count := 1.
  • Duyệt i từ 1 đến độ dài:
    • Nếu s[i] != tmp:
      • res += str(count) + tmp.
      • tmp = s[i], count = 1.
    • Ngược lại, count += 1.
  • Trả về res + str(count) + tmp.

Ví dụ minh họa

class Solution:
    def solve(self, s):
        res = ""
        tmp = s[0]
        count = 1
        for i in range(1, len(s)):
            if s[i] != tmp:
                res += str(count) + tmp
                tmp = s[i]
                count = 1
            else:
                count += 1
        return res + str(count) + tmp

ob = Solution()
print(ob.solve("BBBBAAADDCBB"))

Đầu vào

"BBBBAAADDCBB"

Đầu ra

4B3A2D1C2B