当前位置: 首页 > news >正文

js求解《初级算法》28. 找出字符串中第一个匹配项的下标

一、题目描述

        给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。如果 needle 不是 haystack 的一部分,则返回  -1 。

输入:haystack = "sadbutsad", needle = "sad"

输出:0

解释:"sad" 在下标 0 和 6 处匹配。

第一个匹配项的下标是 0 ,所以返回 0 。

二、思路

        这道题用String的API只需要一行代码:indexOf(),我们来用slice()方法模拟indexOf()的功能,就是遍历整个待匹配项,在待匹配项haystack中选取匹配项needle开头的下标,在这个条件下,用slice()选取出来的字符串如果等同匹配项needle,就返回在haystack成功匹配的字符串第一个下标

三、代码展示

1. indexOf的直接使用

var strStr = function(haystack, needle) {return haystack.indexOf(needle);
};

2. slice方法模拟indexOf的功能


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.slice(i,i+needle.length)===needle){return i;}}}return -1;
};

四、知识回顾

String方法

方法描述
indexOf()返回某个指定的字符串值在字符串中首次出现的位置。
slice()提取字符串的片断,并在新的字符串中返回被提取的部分。

http://www.lryc.cn/news/28087.html

相关文章:

  • VAE--part1
  • 备战四级!!!
  • sizeof与strlen练习
  • 知识图谱的介绍
  • 【Redis】Redis高级客户端Lettuce详解
  • Qt——自定义界面之QStyle
  • 指针和数组面试题(逐题分析,完善你可能遗漏的知识)
  • centos7搭建nfs挂载日志目录完整步骤
  • 三、JavaScript
  • 深圳大学计软《面向对象的程序设计》实验11 多继承
  • 并发变成实战-原子变量与非阻塞同步机制
  • sql数据库常用操作指令
  • 4-1 定时任务的示例10个
  • 外贸建站多少钱才能达到预期效果?
  • 【Java学习笔记】5.Java 基本数据类型
  • InnoDB 死锁和问题排查
  • tensorflow07——使用tf.keras搭建神经网络(Sequential顺序神经网络)——六步法——鸢尾花数据集分类
  • 关于Java连接Hive,Spark等服务的Kerberos工具类封装
  • 大数据框架之Hadoop:MapReduce(五)Yarn资源调度器
  • uniapp实现地图点聚合功能
  • 经典分类模型回顾2—GoogleNet实现图像分类(matlab版)
  • Java经典面试题——谈谈 final、finally、finalize 有什么不同?
  • C#的Version类型值与SQL Server中二进制binary类型转换
  • 软测入门(五)接口测试Postman
  • UWB通道选择、信号阻挡和反射对UWB定位范围和定位精度的影响
  • linux基本功之列之wget命令实战
  • 学习ROS时针对gazebo相关的问题(重装与卸载是永远的神)
  • 几个C语言容易忽略的问题
  • CentOS 7.9安装Zabbix 4.4《保姆级教程》
  • 路由器与交换机的区别(基础知识)