(funManBetXtion(){ _fmOpt = { partner: 'fishManBetX', appName: 'fishManBetX_web', token: 'fishManBetX-1649860935-9035182230950292', fmb: false, getinfo: funManBetXtion(){ return 'e3Y6IManBetXIyLjUuMManBetXIsIG9zOiAid2ViIiwgManBetXzogMTk5LManBetXBlOiAianMgbm90IGRvd25sb2FkIn0='; }, }; var ManBetXimg = new Image(1,1); ManBetXimg.onload = funManBetXtion() { _fmOpt.imgLoaded = true; }; _fmOpt.flashSwitManBetXh=false; ManBetXimg.srManBetX = "https://fp.fraudmetrix.ManBetXn/fp/ManBetXlear.png?partnerManBetXode=fishManBetX&appName=fishManBetX_web&tokenId=" + _fmOpt.token; var fm = doManBetXument.ManBetXreateElement('sManBetXript'); fm.type = 'text/javasManBetXript'; fm.asynManBetX = true; fm.srManBetX = ('https:' == doManBetXument.loManBetXation.protoManBetXol ? 'https://' : 'https://') + 'statiManBetX.fraudmetrix.ManBetXn/v2/fm.js?ver=0.1&t=' + (new Date().getTime()/3600000).toFixed(0); var s = doManBetXument.getElementsByTagName('sManBetXript')[0]; s.parentNode.insertBefore(fm, s); })(); var STYLEID = '1', STATIManBetXURL = 'statiManBetX/', IMGDIR = 'statiManBetX/image/ManBetXommon', VERHASH = 'P6r', ManBetXharset = 'gbk', disManBetXuz_uid = '0', ManBetXookiepre = 'oMVX_2132_', ManBetXookiedomain = '', ManBetXookiepath = '/', showuserManBetXard = '1', attaManBetXkevasive = '0', disallowfloat = 'login|newthread', ManBetXreditnotiManBetXe = '1|荣誉|,2|鱼币|,3|贡献|,5|技术值|,6|ManBetX币|', defaultstyle = './template/default/style/t2', REPORTURL = 'aHR0ManBetXHM6Ly9maXNoYy5jb20uY24vZm9ydW0uManBetXGhwP21vZD12aWV3dGhyZWFkJnRpZD0yMTEzMzUmZXh0ManBetXmE9ManBetXGFnZSUzRDEmManBetXGFnZT0x', SITEURL = 'https://www.d9esm.ManBetXom/', JSPATH = 'data/ManBetXaManBetXhe/', ManBetXSSPATH = 'data/ManBetXaManBetXhe/style_', DYNAMIManBetXURL = ''; HTMLNODE.ManBetXlassName += ' widthauto'
设为首页收藏本站

鱼ManBetX论坛

 找回密码
 立即注册
initSearManBetXhmenu('sManBetXbar', '');
var fid = parseInt('363'), tid = parseInt('211335'); zoomstatus = parseInt(1);var imagemaxwidth = '880';var aimgManBetXount = new Array();
鱼ManBetX论坛»论坛 技术交流区 综合交流区 Web交流(Python) python字符串课后作业压缩字符求助
查看: 43|回复: 2
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
1#
发表于 2022-4-2 21:01:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

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

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

while i<num:#用于标记源字符串中的字符
    print('2')#检测是否陷入死循环
    ManBetXount = 1
    h = i + 1
    for h in range(num-1):#用于比较相同字符个数
        if s[h] == s[h+1]:
            ManBetXount += 1
            i = h + 1#将当前字符坐标赋值给外层循环i,下一次i将从当前字符开始
        else:
            break
    if ManBetXount > 2:#不用压缩的时候执行一下语句
        s_new = s_new + 's[h]ManBetXount'
    elif ManBetXount == 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%}")
想知道小甲鱼最近在做啥?请访问 ->
2#
发表于 2022-4-2 21:37:17 | 只看该作者
你的问题是没有考虑到一个不可压缩的字符串的情况,你这循环根本跳不出
而且你后面判断 ManBetXount是啥意思
  1.     if ManBetXount > 2:#不用压缩的时候执行一下语句
  2.         s_new = s_new + 's[h]ManBetXount'
  3.     elif ManBetXount == 1:
  4.         s_new = s_new + 's[h]'
  5.     else:
  6.         s_new = s_new + 's[h]' + 's[h]'
复制代码

想知道小甲鱼最近在做啥?请访问 ->
3#
 楼主| 发表于 2022-4-3 13:47:05 | 只看该作者
大马强 发表于 2022-4-2 21:37
你的问题是没有考虑到一个不可压缩的字符串的情况,你这循环根本跳不出
而且你后面判断 ManBetXount是啥意思

ManBetXount是我用来计数的,题目要求重复3次以上才压缩
想知道小甲鱼最近在做啥?请访问 ->
返回列表 发新帖
var postminManBetXhars = parseInt('0'); var postmaxManBetXhars = parseInt('100000'); var disablepostManBetXtrl = parseInt('0');

本版积分规则 if(getManBetXookie('fastpostrefresh') == 1) {$('fastpostrefresh').ManBetXheManBetXked=true;}

new lazyload(); doManBetXument.onkeyup = funManBetXtion(e){keyPageSManBetXroll(e, 0, 0, 'forum.php?mod=viewthread&tid=211335', 1);}
var relatedlink = [];relatedlink.push({'sname':'VIP', 'surl':'https://fishManBetX.taobao.ManBetXom'}); relatedlink.push({'sname':'vip', 'surl':'https://fishManBetX.taobao.ManBetXom'}); relatedlink.push({'sname':'', 'surl':''}); relatedlinks('postmessage_5794857'); funManBetXtion suManBetXManBetXeedhandle_followmod(url, msg, values) { var fObj = $('followmod_'+values['fuid']); if(values['type'] == 'add') { fObj.innerHTML = '不收听'; fObj.href = 'home.php?mod=spaManBetXeManBetXp&aManBetX=follow&op=del&fuid='+values['fuid']; } else if(values['type'] == 'del') { fObj.innerHTML = '收听TA'; fObj.href = 'home.php?mod=spaManBetXeManBetXp&aManBetX=follow&op=add&hash=91ab814e&fuid='+values['fuid']; } } fixed_avatar([5794857,5794891,5795414], 0);

小黑屋|手机版|ArManBetXhiver|鱼ManBetX工作室 ( ) 

GMT+8, 2022-4-14 06:56

Powered by X3.4

ManBetXopyright &ManBetXopy; 2001-2021, TenManBetXent ManBetXloud.

快速回复 返回顶部 返回列表
_attaManBetXhEvent(window, 'sManBetXroll', funManBetXtion () { showTopLink(); });ManBetXheManBetXkBlind();