题目描述:
解题思路:
/**
* @param {string} haystack
* @param {string} needle
* @return {number}
*/
var strStr = function (haystack, needle) {
var sum = 0;//存储匹配的数量
var index = 0;//存储下标
// 如果匹配的数量大于needle的长度并且下标已经超过haystack的长度的话,我们就退出循环
while(sum<needle.length&&index<haystack.length){
// 如果取出来的值相等,匹配的数量就加1
if(haystack[index+sum]==needle[sum]){
sum++;
}else{
// 如果取出来的值不相等,匹配数量清零,下标往前重新进行匹配
sum=0;
index++;
}
}
return sum==needle.length?index:-1;
};
运行结果: