class Solution {
public:
int strStr(string haystack, string needle) {
int h = haystack.length();
int n = needle.length();
int b, i;
int falg = 0;
if (n == 1) {
for (i = 0; i < h; i++) {
if (haystack[i] == needle[0])
return i;
}
} else {
for (i = 0, b = n - 1; b < h; i++, b++) {
if (haystack[i] == needle[0] && haystack[b] == needle[n - 1]) {
if (n == 2)
return i;
for (int j = i + 1, k = 1; j < b; j++, k++) {
if (haystack[j] != needle[k])
break;
if (j == b - 1)
falg = 1;
}
if (falg)
break;
}
}
}
if (falg)
return i;
else
return -1;
}
};
代码冗杂了一点,思想差不多
class Solution {
public:
int strStr(string haystack, string needle) {
int n = haystack.size(), m = needle.size();
for (int i = 0; i + m <= n; i++) {
bool flag = true;
for (int j = 0; j < m; j++) {
if (haystack[i + j] != needle[j]) {
flag = false;
break;
}
}
if (flag) {
return i;
}
}
return -1;
}
};
作者:力扣官方题解
链接:https://leetcode.cn/problems/find-the-index-of-the-first-occurrence-in-a-string/solutions/732236/shi-xian-strstr-by-leetcode-solution-ds6y/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。