29 lines
856 B
Python
29 lines
856 B
Python
# https://leetcode.com/problems/string-compression-iii
|
|
|
|
class Solution:
|
|
def compressedString(self, word: str) -> str:
|
|
last_char = None
|
|
l = 0
|
|
result = []
|
|
def to_string(ch, cnt, result):
|
|
if cnt <= 9:
|
|
result.append(str(cnt))
|
|
result.append(ch)
|
|
else:
|
|
cnt -= 9
|
|
result.append('9')
|
|
result.append(ch)
|
|
to_string(ch, cnt, result)
|
|
for ch in word:
|
|
if last_char == None:
|
|
last_char = ch
|
|
l = 1
|
|
continue
|
|
if last_char != ch:
|
|
to_string(last_char, l, result)
|
|
l = 1
|
|
last_char = ch
|
|
else:
|
|
l += 1
|
|
to_string(last_char, l, result)
|
|
return ''.join(result)
|