Python 如何计算另一个字符串中的重叠字符串?
如果我有一个字符串str1=boobbobobebpzfsbobbobobobobobobb,我想计算该字符串Python 如何计算另一个字符串中的重叠字符串?,python,string,Python,String,如果我有一个字符串str1=boobbobobebpzfsbobbobobobobobobb,我想计算该字符串“bob”出现在其中的次数。但是,我不能使用str1.count,因为它只计算非重叠字符串。那么我该怎么做呢?使用(正向前瞻断言): 使用(正向前瞻断言): 通过考虑从递增索引开始的所有子字符串,并计算有多少子字符串以“”bob””开始,可以在二次时间(最坏情况)内解决该问题: 或: 通过考虑从递增索引开始的所有子字符串,并计算有多少子字符串以“”bob””开始,可以在二次时间(最坏情况
“bob”
出现在其中的次数。但是,我不能使用str1.count,因为它只计算非重叠字符串。那么我该怎么做呢?使用(正向前瞻断言):
使用(正向前瞻断言):
通过考虑从递增索引开始的所有子字符串,并计算有多少子字符串以“
”bob”
”开始,可以在二次时间(最坏情况)内解决该问题:
或:
通过考虑从递增索引开始的所有子字符串,并计算有多少子字符串以“
”bob”
”开始,可以在二次时间(最坏情况)内解决该问题:
或:
这里有一个小笑话:
str1 = "boobbobobpzfsbobboobbobb"
str2 = 'bob'
count = sum([str1[k:k+len(str2)]==str2 for k in range(0, len(str1)-len(str2)+1)])
# OUTPUT: 4
这里有一个小笑话:
str1 = "boobbobobpzfsbobboobbobb"
str2 = 'bob'
count = sum([str1[k:k+len(str2)]==str2 for k in range(0, len(str1)-len(str2)+1)])
# OUTPUT: 4
str1 = "boobbobobpzfsbobboobbobb"
times = sum(1 for x in range(len(str1)) if str1[x:].startswith("bob"))
print(times)
import re
str1 = 'boobbobobpzfsbobboobbobb'
len(re.findall('b(?=ob)',str1))
str1 = "boobbobobpzfsbobboobbobb"
str2 = 'bob'
count = sum([str1[k:k+len(str2)]==str2 for k in range(0, len(str1)-len(str2)+1)])
# OUTPUT: 4