LintCode字串壓縮
阿新 • • 發佈:2018-12-10
設計一種方法,通過給重複字元計數來進行基本的字串壓縮。
例如,字串 aabcccccaaa 可壓縮為 a2b1c5a3 。而如果壓縮後的字元數不小於原始的字元數,則返回原始的字串。
可以假設字串僅包括a-z的字母。
樣例
str=aabcccccaaa 返回 a2b1c5a3 str=aabbcc 返回 aabbcc str=aaaa 返回 a4
class Solution:
"""
@param originalString: a string
@return: a compressed string
"""
def compress (self, originalString):
# write your code here
if originalString:
compare = originalString[0]
else:
return ''
count = 1
compressed_string = ''
for i in originalString[1:]:
if compare == i:
count += 1
else :
compressed_string = compressed_string + compare +str(count)
compare = i
count = 1
compressed_string = compressed_string + compare + str(count)
if len(compressed_string) < len(originalString):
return compressed_string
else :
return originalString