题目描述:
解法一: indexOf
/**
* @param {string} haystack
* @param {string} needle
* @return {number}
*/
var strStr = function(haystack, needle) {
return haystack.indexOf(needle)
};
解法二: substring
/**
* @param {string} haystack
* @param {string} needle
* @return {number}
*/
var strStr = function(haystack, needle) {
if (needle.length === 0) {
return 0;
}
for (let i = 0; i < haystack.length; i++) {
if (haystack[i] === needle[0]) {
if (haystack.substring(i, i + needle.length) === needle) {
return i;
}
}
}
return -1;
};
解法三:双循环 加 标记
/**
* @param {string} haystack
* @param {string} needle
* @return {number}
*/
var strStr = function(haystack, needle) {
if (needle.length === 0) {
return 0;
}
for (let i = 0; i < haystack.length; i++) {
if (haystack[i] === needle[0]) {
var flag = true;
for (let j = 1; j < needle.length; j++) {
if (haystack[i+j] !== needle[j]) {
flag = false;
break;
}
}
if (flag) {
return i;
}
}
}
return -1;
};