Problem:
Implement strStr().
Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack.
Update (2014-11-02):
The signature of the function had been updated to return the index instead of the pointer. If you still see your function signature returns a char
*
or String
, please click the reload button to
reset your code definition.
Solution:
Code:
public class Solution {
public int strStr(String haystack, String needle) {
if (needle == null || needle.length() == 0) return 0;
for (int i = 0; i < haystack.length() - needle.length() + 1; i++) {
int j = 0;
int start = i;
while(haystack.charAt(i) == needle.charAt(j)) {
j++;
i++;
if (j == needle.length()) return start;
}
i = start;
}
return -1;
}
}