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
TA贡献1825条经验 获得超4个赞
您需要采用滑动窗口方法来获取字符串中子字符串的计数。
例子:
字符串:“嘿嘿嘿”
子串:“呃”
从前 3 个(因为子字符串的长度为 3)字母“ehe”开始 - 这是我们要查找的子字符串吗?- 是的。
现在留下第一个字母“e”并将字母“he”与下一个字母“h”组合起来形成“heh”,这是我们要寻找的子字符串吗?- 不
现在留下第一个字母“h”并将字母“eh”与下一个字母“e”组合起来形成“ehe”,这是我们正在寻找的子字符串吗?是的
执行到字符串末尾并计算“yes”的数量
添加回答
举报