题目大意:实现strstr()函数,即给出两个串判断一个串是否是另一个串的子串,如果是返回第一次出现的索引,如果不是返回-1;
算法思想:
法一:用str.find().
法二:暴力匹配:
遍历主串的每一位,将其当做子串的起始位判断其开始且后序的字符和字串是否相等,如果全部相等则返回主串当前的位置,如果不全相等则进行下一个起始位的比较。主串遍历完时返回-1;
代码如下:
class Solution {
public:
int strStr(string haystack, string needle) {
if(needle.length()==0) return 0;
int j;
for(int i=0;i<=(int)(haystack.length()-needle.length());++i){
for(j=0;j<needle.length();++j){
if(haystack[i+j]!=needle[j])
break;
}
if(j==needle.length())
return i;
}
return -1;
}
};