28. Find the Index of the First Occurrence in a String
Description
Given two strings needle
and haystack
, return the index of the first occurrence of needle
in haystack
, or -1
if needle
is not part of haystack
.
Example 1:
Input: haystack = "sadbutsad", needle = "sad" Output: 0 Explanation: "sad" occurs at index 0 and 6. The first occurrence is at index 0, so we return 0.
Example 2:
Input: haystack = "leetcode", needle = "leeto" Output: -1 Explanation: "leeto" did not occur in "leetcode", so we return -1.
Constraints:
1 <= haystack.length, needle.length <= 104
haystack
andneedle
consist of only lowercase English characters.
Solution
find-the-index-of-the-first-occurrence-in-a-string.py
class Solution:
def strStr(self, haystack: str, needle: str) -> int:
if needle == "" or haystack == needle: return 0
n = len(needle)
s = deque()
for index, x in enumerate(haystack):
if len(s) < n:
s.append(x)
if len(s) == n:
word = "".join(s)
if word == needle:
return index - n + 1
s.popleft()
return -1
find-the-index-of-the-first-occurrence-in-a-string.java
class Solution {
public int strStr(String haystack, String needle) {
for (int i = 0; ; i++) {
for (int j = 0; ; j++) {
if (j == needle.length()) return i;
if (i + j == haystack.length()) return -1;
if (needle.charAt(j) != haystack.charAt(i + j)) break;
}
}
}
}