1. 程式人生 > >LintCode字串壓縮

LintCode字串壓縮

設計一種方法,通過給重複字元計數來進行基本的字串壓縮。

例如,字串 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