Python - find()函数的代价

时间:2014-09-24 04:59:54

标签: python find

我正在寻找一种有效的方法来检查短字符串是否在长字符串中。我在这个帖子上看到了一些建议: Python efficient way to check if very large string contains a substring

但是,我没有看到find()的使用。使用find()函数是否昂贵?什么是时间复杂度?

我查看了Wiki页面,但没有找到find()。 https://wiki.python.org/moin/TimeComplexity

1 个答案:

答案 0 :(得分:3)

快速浏览来源,str.find来自stringlib_find_slicehere调用fastsearch最终会调用here。实际算法用{{3}}解释 - 使用python伪代码(我从阅读评论中收集)。

看起来实现最坏的情况是O(N * M)(与原始方法相同),但在某些情况下可以做O(N / M)(其中N和M是字符串的长度)和子串()和O(N)在频繁的情况下 1

1 (不要引用我 - 我只是略读文件)