Encode Adjacent Letters

Encode a string by counting the consecutive letter.

(i.e., "aaaabbxxxyyz" might become "a4b2x3y2z1").

 

分析:

这个问题是一个基本的数据压缩算法,将相邻的字符计数存储。解法没有什么特别需要注意的地方,按部就班的实现代码就可以了。

class Solution:

    # @param s, letters as string
    # @return an encoded string
    def encode(self, s):
        if not s or len(s) == 0:
            return ""

        val = ""
        prev = s[0]
        count = 1
        for c in s[1:]:
            if c == prev:
                count += 1
            else:
                val += prev + str(count)
                prev = c
                count = 1
        val += prev + str(count)
        return val

if __name__ == __main__:
    s = Solution()
    assert s.encode("") == ""
    assert s.encode("aaaabbxxxyyz") == "a4b2x3y2z1"
    assert s.encode("aaaaaaaaaaab") == "a11b1"
    print PASS

小结:

extends下是目前不在LeetCode但是我遇到的有趣的程序问题。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。