首页 > 解决方案 > 从给定的 str 中查找 str 第一次出现的索引

问题描述

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

标签: pythonalgorithm

解决方案


Python 实际上有一个内置函数,这就是为什么这个问题似乎不太适合用 Python 进行面试。这样的事情就足够了:

def strStr(A, B):
  return A.find(B)

否则,正如评论者所提到的,输入/输出和测试很重要。您可以添加一些检查以使其性能稍高一些(即检查 B 是否小于 A),但我认为一般来说,您不会比 O(n) 做得更好。


推荐阅读