1. 解题思路
这一题的话就是一个简单的贪婪算法,把相同的字符进行归并,然后按照题目中的表示方法进行表示一下即可。
2. 代码实现
给出python代码实现如下:
class Solution:
def compressedString(self, word: str) -> str:
ans = ""
def append(ch, cnt):
nonlocal ans
m, r = cnt // 9, cnt % 9
ans += m * f"9{ch}"
if r != 0:
ans += f"{r}{ch}"
return
pre, cnt = "", 0
for ch in word:
if ch != pre:
append(pre, cnt)
cnt = 0
pre = ch
cnt += 1
append(ch, cnt)
return ans
提交代码评测得到:耗时694ms,占用内存19MB。