Google或Amazone在一次采访中提出了以下问题,我的解决方案会被接受吗?
问题:从给定字符串中查找给定单词第一次出现的索引
注:以上问题来自某网站,以下代码通过了所有测试用例不过,我不确定这是否是最理想的解决方案,因此会被大巨头接受。

def strStr(A, B):
    if len(A) == 0 or len(B) == 0:
        return -1
    for i in range(len(A)):
        c = A[i:i+len(B)]
        if c == B:
            return i
    else:
        return -1

最佳答案

在本主题中,您可以学习一些算法,如
rabin karp algorithmz algorithmkmpalgorithm
其中所有运行在O(n+m)的运行时间复杂度,其中n是字符串长度,m是模式长度。算法运行在O(n*m)运行时复杂度。我建议开始学习rabin-karp算法,我个人觉得它最容易掌握。
还有一些高级主题,比如在一个字符串中搜索多个模式,比如aho-corasick算法,很好阅读。我认为这就是grep在搜索多个模式时使用的功能。
希望有帮助:)

关于python - 从给定的str中找到str首次出现的索引,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55789061/

10-15 15:55