[LeetCode] Implement strStr()

1.Return the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack.

Example 1:
Input: haystack = "hello", needle = "ll"
Output: 2

Example 2:
Input: haystack = "aaaaa", needle = "bba"
Output: -1

2.题目要求:在一个字符串中找另一个字符串第一次出现的位置。

3.方法:如果子字符串为空,则返回0;如果子字符串长度大于母字符串长度,则返回-1。然后遍历母字符串,对于每一个字符,我们都遍历一遍子字符串,一个一个字符的对应比较,如果对应位置有不等的,则跳出循环;如果一直都没有跳出循环,则说明子字符串出现了,则返回起始位置即可。

4.代码:
class Solution {
public:
int strStr(string haystack, string needle) {
if (needle.empty()) return 0;
int m = haystack.size(), n = needle.size();
if (m < n) return -1;
for (int i = 0; i <= m - n; ++i) {
int j = 0;
for (j = 0; j < n; ++j) {
if (haystack[i + j] != needle[j]) break;
}
if (j == n) return i;
}
return -1;
}
};

你可能感兴趣的:([LeetCode] Implement strStr())