思路:
暴力解法,首先解决只有needle只有一个或者零个元素和needle的长度大于haystack的情况,然后遍历haystack,判断i位置的元素和i+1位置上的元素是否和haystack的前两位相等,如果相等则再写一个循环遍历完needle数组看看是否匹配。
代码:
class Solution {
public:
int strStr(string haystack, string needle) {
if(haystack.size()<needle.size())return -1;
if(needle.size()==1){
if(haystack.find(needle[0])!=string::npos)return haystack.find(needle[0]);
else return -1;
}
if(needle.size()==0)return 0;
int n=needle.size();
for(int i=0;i<haystack.size();i++){
if(haystack[i]==needle[0]&&i+1<haystack.size()&&haystack[i+1]==needle[1]){
int index=i+2;int j;
for( j=2;j<n;j++,index++){
if(haystack[index]!=needle[j]||index==haystack.size())break;
}
if(j==n)return i;
}
}
return -1;
}
};