方法一:
class Solution:
def compressString(self, S: str) -> str:
if not S:
return ""
ans = ""
S += " "
cur = 0
for i in range(1,len(S)):
if S[i-1] == S[i]:
continue
count = 0
for j in range(cur, i):
count += 1
ans += S[i-1]
ans += str(count)
cur = i
if len(ans) >= len(S) - 1:
return S[:-1]
else:
return ans
方法二:
class Solution:
def compressString(self, S: str) -> str:
if not S:
return ""
ch = S[0]
ans = ''
cnt = 0
for c in S:
if c == ch:
cnt += 1
else:
ans += ch + str(cnt)
ch = c
cnt = 1
ans += ch + str(cnt)
return ans if len(ans) < len(S) else S