鱼C论坛

 找回密码
 立即注册
查看: 1335|回复: 4

[已解决]关于课后作业第十八讲

[复制链接]
发表于 2021-9-21 10:08:34 | 显示全部楼层 |阅读模式

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

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

x
def findStr(desStr, subStr):
    count = 0
    length = len(desStr)
    if subStr not in desStr:
        print('在目标字符串中未找到字符串!')
    else:
        for each1 in range(length-1):      
            if desStr[each1] == subStr[0]:
                if desStr[each1+1] == subStr[1]:
                    count += 1
                    
        print('子字符串在目标字符串中共出现 %d 次' % count)

desStr = input('请输入目标字符串:')
subStr = input('请输入子字符串(两个字符):')
findStr(desStr, subStr)


第七行中,length - 1这个是什么意思呢???
希望解答,十分感谢!!!!
最佳答案
2021-9-21 10:27:40
因为要查找的是两个字符的子字符串,比如长度为5,只需要查看目标字符串的前四个就够了,最后一个不影响结果。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-9-21 10:27:40 | 显示全部楼层    本楼为最佳答案   
因为要查找的是两个字符的子字符串,比如长度为5,只需要查看目标字符串的前四个就够了,最后一个不影响结果。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2021-9-21 10:46:00 | 显示全部楼层
小圣呀 发表于 2021-9-21 10:27
因为要查找的是两个字符的子字符串,比如长度为5,只需要查看目标字符串的前四个就够了,最后一个不影响结 ...

谢谢 明白了 !!!1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-21 12:43:45 | 显示全部楼层
小圣呀 发表于 2021-9-21 10:27
因为要查找的是两个字符的子字符串,比如长度为5,只需要查看目标字符串的前四个就够了,最后一个不影响结 ...

我想了一下 ,如果目标字符串是4,那减去1,就剩下3了,比如,目标字符串:imim 子字符串:im,这样的话,不就错了吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-21 16:42:57 | 显示全部楼层
W1ND123 发表于 2021-9-21 12:43
我想了一下 ,如果目标字符串是4,那减去1,就剩下3了,比如,目标字符串:imim 子字符串:im,这样的话,不 ...

没问题的。for循环下有两个if条件,第一个if能够识别当前位置字符是否与子字符串的第一个字符i相同,然后再if判断紧接着的下一个位置字符是否是m,比如第一次,目标字符串需要判断的是im,第二次mi,第三次im,对应的子字符判别,就是三次循环中有两次符合。总之,判断跨度是2个字符,所以目标字符只需索引至倒数第二个。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-24 19:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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