您的位置:首页 > 其它

大搜车笔试算法

2018-10-25 09:48 28 查看
版权声明:转载请注明出处 德拉 https://blog.csdn.net/Della0930/article/details/83374863

如何用原生的方法实现indexOf


原题目是这样:

有字符串

a = '34'
b = '123456789'
,要求定义一个函数返回
b
字符串中第一个匹配
a
字符串的下标,不得使用现有的方法 indexOf()

//原生方法实现indexOf()
function searchIndex(str1,str2) {//n为起始位置
let i = 0;//循环变量
let len1 = str1.length;//子串长度
let len2 = str2.length;//父串长度

//判断子串和父串
if(str1==str2) {
return 0;
}else {
if (len1>len2){
[str1,str2] = [str2,str1];
[len1,len2] = [len2,len1];

}
let str3 = '';
while (i < len2) {
str3 = str2.substr(i,len1);// 以相同个数的字符串去比对

if(str3 == str1){
return i; //i返回的就是我们的下标,return可直接退出循环
}
i++; //如果未匹配成功,则继续往下匹配
}
if(i==len2){
return -1; //如果找到最后,依然没有匹配,说明并没有相同的
}
}

}
//这里是测试
let a = '34';
let b = '123456789';
let res = searchIndex(b,a);
console.log(res);//2
阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: