Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình mã hóa một chuỗi ở dạng bình thường sang dạng độ dài chạy của nó bằng Python

Giả sử chúng ta có một chuỗi s. Chúng tôi phải mã hóa điều này bằng cách sử dụng kỹ thuật mã hóa thời lượng chạy. Như chúng ta đã biết, mã hóa độ dài chạy là một phương pháp mã hóa chuỗi ký tự nhanh và đơn giản. Ý tưởng như sau - Các phần tử (ký tự) liên tiếp được lặp lại như một số và ký tự.

Vì vậy, nếu đầu vào là s =​​"BBBBAAADDCBB", thì đầu ra sẽ là "4B3A2D1C2B"

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • res:=chuỗi trống
  • tmp:=ký tự đầu tiên của s
  • số lượng:=1
  • đối với tôi trong phạm vi từ 1 đến cỡ s, thực hiện
    • nếu s [i] không giống với tmp, thì
      • res:=res concatenate count concatenate tmp
      • tmp:=s [i]
      • số lượng:=1
    • nếu không,
      • count:=count + 1
  • trả về res concatenate count concatenate tmp

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

Ví dụ

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