# 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)