用于实现Python str.count函数的算法

时间:2013-05-29 06:31:00

标签: python algorithm

我在阅读文档时遇到了Python str.count函数。我似乎无法找到关于函数内部工作的任何好的解释。使用什么算法来计算字符串中的子串数?它是如何运作的?

2 个答案:

答案 0 :(得分:5)

https://github.com/python/cpython/blob/master/Objects/stringlib/fastsearch.h

处研究源代码

文件顶部的评论解释了这么多:

  

快速搜索/计数实施,基于boyer-moore之间的混合   和horspool一样,顶部还有一些铃铛和口哨声。对于一些   更多背景信息,请参阅:http://effbot.org/zone/stringlib.htm

答案 1 :(得分:-2)

我尝试使用 Python 编写一个简单的代码来计算单词列表中有多少个“r”:

fruit = ["apple", "banana", "rrrrrrrrr", "cherry", "berrada"]
y=0
for j in range(len(fruit)):
  x = fruit[j].count("r")
  y = y + x
  
print(y)

它可能会帮助您了解计数函数的工作原理。