设计一种方法,通过给重复字符计数来进行基本的字符串压缩。
例如,字符串 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