- 考虑了长度不一致的情况
- 但是没考虑一开始这两个字符串就相等的情况
class Solution {
public:
int strStr(string haystack, string needle) {
int haystack_len = haystack.length();
int needle_len = needle.length();
if (haystack == needle) {
return 0;
}
if (needle_len > haystack_len) {
return -1;
}
for (int i = 0; i < haystack_len - needle_len + 1; i++) {
// match
int k = 0;
int j = i;
for (; k < needle_len; j++, k++) {
if (haystack[j] != needle[k]) {
break;
}
}
// 这里的i是对比字符haystack中子串开始位置
if (k == needle_len) {
return i;
}
}
return -1;
}
};