描述
设计一种方法,通过给重复字符计数来进行基本的字符串压缩。
例如,字符串 aabcccccaaa 可压缩为 a2b1c5a3 。而如果压缩后的字符数不小于原始的字符数,则返回原始的字符串。
可以假设字符串仅包括 a-z 的大/小写字母。
Example 1:
Input: str = "aabcccccaaa"
Output: "a2b1c5a3"
Example 2:
Input: str = "aabbcc"
Output: "aabbcc"
class Solution:
"""
@param originalString: a string
@return: a compressed string
"""
def compress(self, originalString):
# write your code here
l = len(originalString)
if l == 0:
return originalString
ans = []
count = 1
last = originalString[0]
for c in originalString[1:]:
if c == last:
count += 1
else:
ans.append(last)
ans.append(str(count))
last = c
count = 1
ans.append(last)
ans.append(str(count))
if len(ans) < len(originalString):
return ''.join(ans)
else:
return originalString