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
- nếu s [i] không giống với tmp, thì
- 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