題目
字元串壓縮。利用字元重複出現的次數,編寫一種方法,實作基本的字元串壓縮功能。比如,字元串aabcccccaaa會變為a2b1c5a3。若“壓縮”後的字元串沒有變短,則傳回原先的字元串。你可以假設字元串中隻包含大小寫英文字母(a至z)。
示例1:
輸入:"aabcccccaaa"
輸出:"a2b1c5a3"
示例2:
輸入:"abbccd"
輸出:"abbccd"
解釋:"abbccd"壓縮後為"a1b2c2d1",比原字元串長度更長。
提示:
字元串長度在[0, 50000]範圍内。
解題思路
class Solution:
def compressString(self, S: str) -> str:
sList = S
if len(sList)<=1:
return S
tempCache = 1
tempStr = sList[0]
ret = ""
for i in range(1,len(sList)):
eachStr = sList[i]
print(eachStr)
if eachStr == tempStr:
tempCache += 1
else:
ret = ret + tempStr + str(tempCache)
tempCache = 1
tempStr = eachStr
ret = ret + tempStr + str(tempCache)
if len(ret)>=len(sList):
return S
return ret