思路:
(1)先求haystack与needle长度的差值minus,遍历haystack只需遍历到minus即可。
(2)对每一次遍历,判断needle的字符是否一一相等,一旦某个字符不相等,立即break进行下一次遍历。
public class Solution {
public int strStr(String haystack, String needle) {
int hLen = haystack.length();
int nLen = needle.length();
int minus = hLen - nLen;
if (minus < 0)
return -1;
for (int i = 0; i <= minus; i++) {
int j = 0;
int k = i;
for (; j < nLen; k++, j++) {
if (haystack.charAt(k) != needle.charAt(j))
break;
}
if (j == nLen)
return i;
}
return -1;
}
}
Runtime:9ms