第八天:力扣第28题,实现 strStr()
地址:leetcode-cn.com/problems/im…
思路:先考虑下当needle为空的时候,应该返回的是0,所以直接拉出来,然后就是转化成数组for循环判断了。
var strStr = function(haystack, needle) {
let a = haystack.split("");//转化成数组
let c = [];
if(needle=="")//空导出0
{
return 0;
}
for(let i = 0;i < haystack.length-needle.length+1;i++)//大小这里是相减
{
for(let j = 0;j<needle.length;j++)//循环加入数组
{
c[j]=a[j+i];
}
if(c.join("")==needle)//进行比较
{
return i;
}
}
return "-1";
};
不难,其实有个函数可以直接实现的:
var strStr = function(haystack, needle) {
return haystack.indexOf(needle);
};
我看了看,大部分方法差不多,其实也有个截取字符串的方法可以用的:
var strStr = function (haystack, needle) {
if (needle === "") return 0
for (var i = 0; i < haystack.length; i++) {
if (haystack[i] === needle[0]) {
if (haystack.substring(i, i + needle.length) === needle) return i;
}
}
return -1
};
substring是截取字符串的。同样其实slice方法也行,还有substr。
这里说下substring,slice和substr的区别了:
百度吧,下次写,嘻嘻。