实现一个字符串匹配算法,从字符串 H 中,查找 是否存在字符串 Y ,若是存在返回所在位置的索引,不存在返回 -1(不基于indexOf/includes方法)
2024-09-07 12:15:34
/**
1、循环原始字符串的每一项,让每一项从当前位置向后截取 H.length 个字符,
然后和 Y 进行比较,如果不一样,继续循环;如果一样返回当前索引即可
**/
function myIndexOf(Y) {
let lenY = Y.length,
lenH = H.length,
res = -1;
if (lenY > lenH) return res;
for (let i = 0; i <= lenH - lenY; i++) {
if (this.substr(i, lenY) === Y) {
res = i;
break;
}
}
return res;
}
String.prototype.myIndexOf = myIndexOf;
let H = 'fighting',
Y = 'ht';
console.log(H.myIndexOf(Y));
/**
2、正则处理
**/
function myIndexOf(Y) {
// this:H
let reg = new RegExp(Y),
res = reg.exec(this);
return res === null ? -1 : res.index;
}
String.prototype.myIndexOf = myIndexOf;
let H = 'fighting',
Y = 'ht';
console.log(H.myIndexOf(Y));
最新文章
- 探索ASP.NET MVC5系列之~~~6.Session篇(进程外Session)
- 从N个元素的集合中随机取m个元素的算法实现
- 百度地图 获取两点坐标之间的驾车距离(非直线距离) c#
- [C/C++] VS 2015 C++ 插件
- 【转】完美解读Linux中文件系统的目录结构
- VS2010断点调试技巧
- (转)Db2 数据库常见堵塞问题分析和处理
- [转载]css代码优化的12个技巧
- 前端通信:ajax设计方案(八)--- 设计请求池,复用请求,让前端通信快、更快、再快一点
- iOS6新特征:UICollectionView介绍-非常棒 -转
- js实现双击滚屏效果
- Day6 ,周期末考试试题
- POJ 1050
- 检测到 Mac 文件格式: 请将源文件转换为 DOS 格式或 UNIX 格式
- dp之二维背包hdu3496
- [转]Repeat Page Header on each Page for reports SSRS
- Hive(五)hive的高级应用
- day04.3-生成器
- Hadoop High Availability高可用
- HTTP解读