为了账号安全,请及时绑定邮箱和手机立即绑定

如何计算Python中字符串中子字符串出现的次数?

如何计算Python中字符串中子字符串出现的次数?

梦里花落0921 2023-12-05 15:01:19
我正在尝试编写一个代码片段,请求用户输入一个 strings然后输入一个 substring ss。ss然后程序必须计算in出现的次数s。例如,如果用户输入s = ‘azcbobobegghakl’and ss = ‘bob’,则程序应打印: Number of times bob comes is: 2。到目前为止,这是我的代码:def count(s,ss):    Occurrence = 0    if ss in s :        for ss in s :            Occurrence += 1    return Occurrence #Main program :     s = str(input("Choose a string: "))    ss = str(input("Choose a substring:"))     print ("Number of times " + str(ss) + " occurs is : " + str(count(s,ss)) ) 我想要的输出是这样的:Choose a string: hellohelChoose a substring:helNumber of times hel occurs is : 2但我得到的是这个:Choose a string: hellohelChoose a substring:helNumber of times hel occurs is : 8那么有人可以帮我修改这段代码以提供所需的输出吗?提前致谢
查看完整描述

2 回答

?
呼唤远方

TA贡献1856条经验 获得超11个赞

您可以使用count


print("hellohel".count("hel"))

2

如果你想计算重叠的发生次数......也许这可以帮助


def countOverlapping(string, item):

    count = 0

    for i in range(0,len(string)):

        if item in string[i:len(item)+i]:

            count += 1

    return count


print(countOverlapping("ehehe", "ehe"))

输出应该是...


2

这是如何运作的?


它使用了他所谓的滑动窗口方法


我们获取子字符串的长度,并在每次迭代时检查它是否在字符串的“窗口”中:


is ehe in [ehe]he? yes, count += 1

is ehe in e[heh]e? no, pass

is ehe in eh[ehe]? yes, count += 1


查看完整回答
反对 回复 2023-12-05
?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

您需要采用滑动窗口方法来获取字符串中子字符串的计数。

例子:

字符串:“嘿嘿嘿”

子串:“呃”

从前 3 个(因为子字符串的长度为 3)字母“ehe”开始 - 这是我们要查找的子字符串吗?- 是的。

现在留下第一个字母“e”并将字母“he”与下一个字母“h”组合起来形成“heh”,这是我们要寻找的子字符串吗?- 不

现在留下第一个字母“h”并将字母“eh”与下一个字母“e”组合起来形成“ehe”,这是我们正在寻找的子字符串吗?是的

执行到字符串末尾并计算“yes”的数量


查看完整回答
反对 回复 2023-12-05
  • 2 回答
  • 0 关注
  • 106 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信