一行代码解决LeetCode实现 strStr()使用JavaScript解题|前端学算法

简介: 一行代码解决LeetCode实现 strStr()使用JavaScript解题|前端学算法

实现 strStr()


实现 strStr() 函数。

给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回  -1 。

示例 1:

输入:haystack = "hello", needle = "ll"

输出:2

示例 2:

输入:haystack = "aaaaa", needle = "bba"

输出:-1  


解题思路


一行代码就能解出这道题,既然是返回出现的第一个位置,完全可以使用indexOf

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


image.png


一行代码省时省力


但是这样好像不太好吧,不用indexOf再搞一次

可以先遍历一遍字符串,找到与目标字符串第一个字符相同的位置,然后在判断后面的是否相同

具体步骤如下:

  • 第一步:定义一个变量res,用于存储第一个字符的位置,初始值为-1
  • 第二步:如果needle.length>haystack.length,直接就可以返回-1了
  • 第三部遍历 haystack ,判断一下haystack[i]===needle[0]是否成立,如果成立,就利用substr截取字符串,再与needle判断是否相同,如果相同则跳出循环直接就返回i
var strStr = function(haystack, needle) { 
    let res= -1 
    if(needle.length>haystack.length) return res 
        for(let i=0;i<haystack.length;i++){ 
            if(haystack[i]===needle[0]){ 
                if(haystack.substr(i,needle.length) === needle){ 
                    res = i 
                    break 
                } 
            } 
        } 
    return res 
};


image.png


当然,还有另一种写法,连substr都不用,这里我直接贴出图片吧


image.png


知识点


  • substr() 方法可在字符串中抽取从 start 下标开始的指定数目的字符。



目录
相关文章
|
8天前
|
前端开发 小程序 Java
uniapp上传图片 前端以及java后端代码实现
uniapp上传图片 前端以及java后端代码实现
22 0
|
10天前
|
前端开发 JavaScript 网络协议
前端最常见的JS面试题大全
【4月更文挑战第3天】前端最常见的JS面试题大全
28 5
|
11天前
|
缓存 前端开发
前端代码整洁与规范之CSS篇
【4月更文挑战第2天】 前端代码整洁与规范之CSS篇
33 4
|
21天前
|
机器学习/深度学习 算法 PyTorch
RPN(Region Proposal Networks)候选区域网络算法解析(附PyTorch代码)
RPN(Region Proposal Networks)候选区域网络算法解析(附PyTorch代码)
159 1
|
25天前
|
JSON 前端开发 Java
layui上传图片,前端直接拷代码,后端……
layui上传图片,前端直接拷代码,后端……
21 0
|
26天前
|
JavaScript 前端开发 Java
纯前端JS实现人脸识别眨眨眼张张嘴案例
纯前端JS实现人脸识别眨眨眼张张嘴案例
37 0
|
28天前
|
算法 安全 C语言
使用C语言实现DES算法代码
使用C语言实现DES算法代码
|
1月前
|
缓存 前端开发 JavaScript
揭秘前端性能优化:从代码到用户体验的全面升级
揭秘前端性能优化:从代码到用户体验的全面升级
18 0
|
12天前
|
机器学习/深度学习 算法 搜索推荐
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)
|
1月前
|
机器学习/深度学习 算法 Python
傅里叶变换算法和Python代码实现
傅立叶变换是物理学家、数学家、工程师和计算机科学家常用的最有用的工具之一。本篇文章我们将使用Python来实现一个连续函数的傅立叶变换。
29 8