|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
任务:编写一个程序,实现基本的字符串压缩功能。比如,字符串 FFiiiisshCCCCCC 压缩后变成 F2i4s2h1C6(15字符 -> 10字符,66% 压缩率)。
这种朴素的压缩算法并不总是理想的,比如 FFishCC 压缩后反而变长了 F2i1s1h1C2,这可就不是我们想要的了,所以对于重复次数小于 3 的字符,我们的程序应该选择不对其进行压缩。
- press = input("请输入待压缩的字符串:")
- length = len(press)
- result = []
- for each in press:
- count = press.count(each)
- if count > 2:
- if result.count(each) == 0:
- result.append(each)
- result.append(count)
- else:
- continue
- else:
- result.append(each)
- continue
- length_1 = len(result)
- percent = length_1 / length
- print(result)
- print("压缩后的字符串:","".join(result))
- print("压缩率为:" , "{:%}".format(percent))
复制代码
1.想问下各位大佬,这里逻辑应该没问题,为什么最后输出的时候join这个函数有问题 ,该怎么修改 谢谢
要考虑字符出现的顺序吧,不然这样的压缩,显然会失真呀。。'FFishCCFFF' 你压缩后,是'F5ishCC'? ——这样你怎么解压还原回去?
|
|