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ủas.count := 1.- Duyệt
itừ 1 đến độ dài:- Nếu
s[i] != tmp:res += str(count) + tmp.tmp = s[i],count = 1.
- Ngược lại,
count += 1.
- Nếu
- 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