LeetCode(28)题解:Implement strStr()

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 };

 

你可能感兴趣的:(LeetCode)