https://leetcode.com/problems/implement-strstr/
题目:
Implement strStr().
Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack.
思路:
判断一个string是否另一个string的子序列并返回位置。
naive法:遍历查找,复杂度O(mn)。
advance法还有Rabin-Karp, KMP, Boyer- Moore algorithm等。
AC代码:
1 class Solution { 2 public: 3 int strStr(string haystack, string needle) {\ 4 int m=haystack.size(); 5 int n=needle.size(); 6 if(n==0 && m==0) 7 return 0; 8 bool flag=true; 9 for(int i=0;i<m-n+1;i++){ 10 for(int j=0;j<n;j++){ 11 if(needle[j]!=haystack[i+j]){ 12 flag=false; 13 break; 14 } 15 } 16 if(flag==true){ 17 return i; 18 } 19 else 20 flag=true; 21 } 22 return -1; 23 } 24 };