鱼C论坛

 找回密码
 立即注册
查看: 1329|回复: 2

python字符串课后作业压缩字符求助

[复制链接]
发表于 2022-4-2 21:01:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
请问大家小甲鱼的python字符串作业中关于压缩字符串的程序,我的程序是死循环,请问该怎么改善
s = input ('请输入待压缩字符串:')

num = len(s)
s_new = ''
i = 0

while i<num:#用于标记源字符串中的字符
    print('2')#检测是否陷入死循环
    count = 1
    h = i + 1
    for h in range(num-1):#用于比较相同字符个数
        if s[h] == s[h+1]:
            count += 1
            i = h + 1#将当前字符坐标赋值给外层循环i,下一次i将从当前字符开始
        else:
            break
    if count > 2:#不用压缩的时候执行一下语句
        s_new = s_new + 's[h]count'
    elif count == 1:
        s_new = s_new + 's[h]'
    else:
        s_new = s_new + 's[h]' + 's[h]'

rate = (len(s_new)/len(s))
print("压缩后字符串:",s_new)
print("压缩率:",f"{rate:.2%}")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-4-2 21:37:17 | 显示全部楼层
你的问题是没有考虑到一个不可压缩的字符串的情况,你这循环根本跳不出
而且你后面判断 count是啥意思
    if count > 2:#不用压缩的时候执行一下语句
        s_new = s_new + 's[h]count'
    elif count == 1:
        s_new = s_new + 's[h]'
    else:
        s_new = s_new + 's[h]' + 's[h]'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-3 13:47:05 | 显示全部楼层
大马强 发表于 2022-4-2 21:37
你的问题是没有考虑到一个不可压缩的字符串的情况,你这循环根本跳不出
而且你后面判断 count是啥意思

count是我用来计数的,题目要求重复3次以上才压缩
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 20:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表