js实现查找两个相同字符串之间的最长子字符串长度
例如:
输入一个字符串:avbghvhv
先找两个相同字符串就是 1位置的v 和 最后一个v
那么它两之间最长子字符串长度就是 avbghvhv :5
代码实现:
const str = 'avbghvhv';const longestSub = (str = '') => {const map = new Map();let max = -1;for(let i = 0; i < str.length; i++){if(map.has(str.charAt(i))){ //如果map里面包含了当前字符再计算最大值,否则,直到访问到第二个v的时候,i=5max = Math.max(max, i - map.get(str.charAt(i)) - 1);//max=Math.max(-1,5-map.get('v')-1)=Math.max(-1,5-1-1)=3}else{map.set(str.charAt(i), i);//不包含就将字母写入map,map里面相当于存放的是去重的字符};};console.log(map,'oooo')return max;};console.log(longestSub(str));
JavaScript charAt() 方法:
var str = "HELLO WORLD";
var n = str.charAt(2);// 输出 L
JavaScript中的Map方法:
Map 对象存有键值对,其中的键可以是任何数据类型。
Map 对象记得键的原始插入顺序。
Map 对象具有表示映射大小的属性。
Map.has()
如果 Map 中存在键,则 Map.has() 返回 true:
Map.clear()
Map.clear() 从 Map 中移除所有元素:
map.clear();Map.delete()
Map.delete() 删除 Map 元素:
Map.size
Map.size 返回 Map 中元素的数量:
map.size;
js实现查找两个相同字符串之间的最长子字符串长度相关推荐
- LeetCode简单题之两个相同字符之间的最长子字符串
题目 给你一个字符串 s,请你返回 两个相同字符之间的最长子字符串的长度 ,计算长度时不含这两个字符.如果不存在这样的子字符串,返回 -1 . 子字符串 是字符串中的一个连续字符序列. 示例 1: 输 ...
- LeetCode 1624. 两个相同字符之间的最长子字符串
文章目录 1. 题目 2. 解题 1. 题目 给你一个字符串 s,请你返回 两个相同字符之间的最长子字符串的长度 ,计算长度时不含这两个字符.如果不存在这样的子字符串,返回 -1 . 子字符串 是字符 ...
- 【LeetCode刷题】1624. 两个相同字符之间的最长子字符串
给你一个字符串 s,请你返回 两个相同字符之间的最长子字符串的长度 ,计算长度时不含这两个字符.如果不存在这样的子字符串,返回 -1 . 子字符串 是字符串中的一个连续字符序列. 示例 1: 输入:s ...
- mysql查询两张表的同一列_如何快速查找两个数据表之间的相同和不同?
原标题:如何快速查找两个数据表之间的相同和不同? 知识 随笔 案例 声音 其他 编者按 工作中经常会遇到对来源不同的数据进行比对,查找相同.不同.差异性等.过于复杂的需求,我们通常会转换思路,使用数据 ...
- js 实现查找两个数组中的不同项——基础积累
今天遇到一个需求,就是select的多选下拉,根据选中的值再进行相应的处理.比如当前选中了['山东','浙江','深圳']三项内容,现在去掉中间的深圳,我需要拿到去掉的是哪一项. 我想的方式就是: w ...
- oracle字符串之间,oracle中判断字符串之间包含关系
今天遇到个问题.判断表中某一字段的值是否包含在一传入的变量中,或者某一字段值是不是包含指定的字符串,如果字段的值包含在变量中则返回结果. 测试如下: 程序会产生一个变量,判断字段"A&quo ...
- vue/js数组转字符串之间的相互转换
vue/js数组和字符串之间的相互转换 // 数组转字符串 let arr = [1,2,3] arr.join(',') //变成字符串,并以逗号分隔 // 字符串转数组 let str = '1, ...
- neo4j 两个点创建关系_Neo4j:找到两个纬度/经度之间的中间点
neo4j 两个点创建关系 昨天我写了一篇博客文章,展示了如何使用Cypher查找两个纬度/经度之间的中点,这是第一次尝试填补缺失位置时的效果,但是我意识到我可以做得更好. 正如我在上一篇文章中提到的 ...
- Neo4j:找到两个纬度/经度之间的中间点
昨天我写了一篇博客文章,展示了如何使用Cypher查找两个纬度/经度之间的中点,这是第一次尝试填补丢失位置的方法,但我意识到我可以做得更好. 正如我在上一篇文章中提到的,当我找到一个缺少经纬度坐标的停 ...
最新文章
- 突然发现缓存这么好用
- 免费获取半年 Bitdefender Total Security 2014
- 《iOS 应用逆向工程:分析与实战》 pdf 电子书分享
- jq动态渲染后获取不到元素高度_浏览器的渲染机制
- hnust 神奇的序列
- c++向量和数组的区别_Matlab入门基础知识(5)对数组的操作
- luogu P3810 【模板】三维偏序(陌上花开)
- 删除Linux上的用户
- Centos7 tomcat优化
- 怎么在中国杀死SAP
- lnmp一键安装包 php7,LNMP一键安装包 V1.7 正式版发布
- PeakDo毫米波无线投屏器
- 【材料课堂】锂电池基础
- CSS盒子模型box-sizing属性详解
- c语言 用斜率打印直线,圆锥曲线的解题技巧和方法2017完美打印版.doc
- 加州大学戴维斯分校 计算机科学,UCDavis的Computer Science「加州大学戴维斯分校计算机科学专业」...
- MySQL - Failed to open the referenced table XXX
- 在Android面试前背八股和学面试技巧真的有用吗?
- 【Typora Emoji 图标】
- 前端实现文件上传的断点续传
热门文章
- 第一次实验报告学习总结
- Centos8怎么进行复位清屏? Centos8终端复位清屏的技巧
- 使用Git工具上传项目代码到Gitee仓库
- 遗传算法解决TSP(34个省会城市)问题
- java基于springboot+vue的驾校报名预约管理系统 nodejs
- 一个For语句导致死循环的例子
- htonl(), ntohl(), htons(), ntohs() 函数具体应用
- 英孚教育APP应用获全球杰出商业银奖
- Linux C语言 创建一个简单的守护进程
- Idea 2022 创建 Artifacts 运行 Tomcat 步骤