思路一、常规思路(不推荐)
该思路是死磕for循环的一种,时间就不敢恭维了,我写的时候就知道它是绝对不会出现在实际应用中的
var strStr = function(str, target) {
if(!target){
return 0
}
if(target.length > str.length){
return -1
}
for(var i = 0; i< str.length; i++){
let idx = i;
if(str[i] == target[0]){
for(let j = 0; j < target.length; j++){
if(target[j] == str[idx]){
idx++
}else{
break;
}
}
if(idx - i == target.length){
return i
}else{
continue;
}
}
}
return -1
};
思路二
var strStr = function(haystack, needle) {
if (!needle) return 0
let count = 0, mark = -1;
for (let i = 0; i < haystack.length; i++) {
if (haystack.charAt(i) === needle.charAt(count)) {
if (haystack.substring(i, i + needle.length) === needle) {
return i
}
continue;
}
}
return -1
};