计算给定字符串出现次数的最佳方法是什么,包括python中的重叠?这是最明显的方式:
def function(string, str_to_search_for):
count = 0
for x in xrange(len(string) - len(str_to_search_for) + 1):
if string[x:x+len(str_to_search_for)] == str_to_search_for:
count += 1
return count
function('1011101111','11')
returns 5
Run Code Online (Sandbox Code Playgroud)
?
或者在python中有更好的方法吗?
在我的代码中:
>> s = 'abacaba'
>> s.count('aba')
>> 2
Run Code Online (Sandbox Code Playgroud)
对于上面的代码,我得到正确答案,因为'aba'在字符串中出现2次s.
但对于以下情况:
>> s = 'www'
>> s.count('ww')
>> 1
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我期待s.count('ww')将返回2.但它回来了1.
为什么?