Implement strStr().
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
子串匹配,并返回子串的位置。
最传统的方法:
class Solution { public: int strStr(string haystack, string needle) { int m = haystack.length(); //字串的总长度 int n = needle.length(); //要匹配的子串长度 if (!n) return 0; //如果要匹配的子串长度为0,返回0; for (int i = 0; i < m - n + 1; i++) { int j = 0; for (; j < n; j++) if (haystack[i + j] != needle[j]) break; //某个字符不相等的情况 if (j == n) return i; //成功找到 } return -1; //没有找到子串,返回-1 } };
这里没有考虑用KMP算法