Javascript算法:非固定宽度滑动窗口算法
发布日期:2021-06-30 15:46:01
浏览次数:2
分类:技术文章
本文共 833 字,大约阅读时间需要 2 分钟。
应用:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。
思想:在一个字符串中,有两个标记left和right。right由0移动到字符串最后一位,每次移动一位。每次移动,判断新增加的一位在之前的字符串中是否存在,如果不存在,继续移动,如果存在,移动left至新增加的right位在之前字符串中的位置的下一位。
举例:
在下图中,right第四次移动时,right移动到D上,此时之前字符串ADCB已经包含字符D,移动left至之前字符串中D的位置的下一位。以此类推
代码
var lengthOfLongestSubstring = function(str) { if (!str.length) return 0; let tmpStr = ''; let maxStrLen = 0; let left = 0; for (let i = 0; i < str.length; i++) { if (tmpStr.indexOf(str[i]) !== -1) { left += (str.slice(left, i).indexOf(str[i]) + 1); continue } tmpStr = str.slice(left, i + 1); maxStrLen = Math.max(maxStrLen, tmpStr.length) } return maxStrLen};
所用JavaScript原生字符串函数
indexOf() 检索字符串
indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。
slice() 截取字符串,并返回截取的字符串。
slice() 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。
转载地址:https://kaisarh.blog.csdn.net/article/details/105380483 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2024年04月20日 02时17分47秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
tomcat_部署项目的方式
2019-05-01
tomcat_动态java项目的目录结构
2019-05-01
Servlet_概述
2019-05-01
Servlet_快速入门
2019-05-01
Servlet_执行原理
2019-05-01
Servlet_生命周期方法
2019-05-01
Servlet_生命周期详解
2019-05-01
Servlet_3.0注解配置
2019-05-01
IDEA与tomcat相关配置
2019-05-01
Servlet_体系结构
2019-05-01
Servlet_urlpartten配置
2019-05-01
Request_原理
2019-05-01
Request_继承体系
2019-05-01
Request_获取请求行数据_方法介绍
2019-05-01
spring的优势
2019-05-01
编写jdbc的工程代码用于分析程序的耦合
2019-05-01
工厂模式解耦的升级版
2019-05-01
hrm中的jwt认证:获取用户数据
2019-05-01
前端权限控制:获取用户信息接口构造数据
2019-05-01
前端权限控制:前端菜单控制
2019-05-01