python - 从给定的 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
解决方案
Python 实际上有一个内置函数,这就是为什么这个问题似乎不太适合用 Python 进行面试。这样的事情就足够了:
def strStr(A, B):
return A.find(B)
否则,正如评论者所提到的,输入/输出和测试很重要。您可以添加一些检查以使其性能稍高一些(即检查 B 是否小于 A),但我认为一般来说,您不会比 O(n) 做得更好。
推荐阅读
- scrapy - 响应在 Scrapy Shell 中有效,但在代码中无效
- c# - Google Closure Compiler 中的错误 - 访问 Google Closure Compiler Service API 时发生错误,HTTP 状态代码为“MethodNotAllowed”
- typescript - 打字稿 - 强制值成为接口的属性
- sql - 错误:带有“ON”部分的 JOIN 的 SQL 子字符串
- android - 带有对话框片段的片段工厂
- solr - 配置 Solr 主目录,而不是在 bin/solr start 命令中使用 -s
- kubernetes - Istio 代替 nxing proxy_pass
- javascript - .map 仅返回数组 React 的最后一个元素
- javascript - 如何使用javascript向三元运算符添加部分代码并做出反应?
- java - 比较器未正确排序 -2147483648