Menu
CoddyTech

Find the First Occurrence in a String

你会得到两个字符串,haystack 和 needle。返回 needle 在 haystack 中第一次出现的位置索引,从 0 开始计数。如果 needle 从未出现在 haystack 中,则返回 -1。请自己编写搜索逻辑,不要调用内置的子字符串搜索方法,例如 find 或 indexOf。

函数

strStr(haystack: string, needle: string) → integer
haystackstring
要搜索的文本
needlestring
要查找的字符串
返回值integer
needle 第一次出现的位置索引;如果没有,则为 -1

约束条件

  • 1 ≤ haystack.length ≤ 5 × 104
  • 1 ≤ needle.length ≤ 5 × 104
  • 两个字符串都只包含小写英文字母。
  • needle 可能比 haystack 长。这样一来,它就不可能出现,答案是 -1。

示例

输入
haystack = "bananarama"needle = "ana"
输出
1
解释
索引 1 到 3 处的字母拼成了 ana。另一处副本从索引 3 开始,与它重叠,但只计算第一个副本,所以答案是 1。
challenge icon

进阶

你能在 O(n + m) 时间内,返回 needle 每次开始的位置索引吗?包括彼此重叠的匹配。

重置代码
def strStr(haystack, needle):
    # 在这里编写代码

测试 #1

测试 #2

测试 #3

参数

haystack = "bananarama"
needle = "ana"

预期输出

1