python行程长度压缩

题目内容:

在数据压缩中,一个常用的途径是行程长度压缩。对于一个待压缩的字符串(只包含大写字母)而言,我们可以依次记录每个字符及重复的次数。这种压缩,对于相邻数据重复较多的情况比较有效。 例如,如果待压缩串为"AAABBBBCBB",则压缩的结果是(A,3)(B,4)(C,1)(B,2)。当然,如果相邻字符重复情况较少,则压缩效率就较低。

现要求根据输入的字符串,得到压缩结果。

 

输入格式:

一个字符串,全部由大写字母组成。长度大于1,小于10000

 

输出格式:

输出为一行,表示压缩结果,形式为: (A,3)(B,4)(C,1)(B,2) 即每对括号内部分别为字符及重复出现的次数,不含任何空格。

 

输入样例:

AAABBBBCCCAAAAA

输出样例:

(A,3)(B,4)(C,3)(A,5)

时间限制:500ms内存限制:32000kb

#!/usr/bin/python
# -*- coding: UTF-8 -*-
"""
@author: YangPC
@time:2021/06/24
@QQ:327844761
@微信公众号:ewbang
"""


def fun(s):
    res = ''
    if len(s) == 0:
        return res
    last = s[0]
    count = 1
    for c in s[1:]:
        if last == c:
            count += 1
        else:
            res += "({},{})".format(last, count)
            last = c
            count = 1
    res += "({},{})".format(last, count)
    return res


if __name__ == '__main__':
    s = "AAABBBBCCCAAAAA"
    res = fun(s)
    print(res)

程序输出结果:若有帮助,望采纳!

 

觉得可以的话,希望采纳。谢谢,共同努力加油