题目内容:
在数据压缩中,一个常用的途径是行程长度压缩。对于一个待压缩的字符串(只包含大写字母)而言,我们可以依次记录每个字符及重复的次数。这种压缩,对于相邻数据重复较多的情况比较有效。 例如,如果待压缩串为"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)
程序输出结果:若有帮助,望采纳!
觉得可以的话,希望采纳。谢谢,共同努力加油