返回字符串中最长连续相同字串的长度---正则实现与JavaScript实现
let str = 'AAABBAACCAAAADDE'
function continuousString(str) {
let finalObj = {}
let tempObj = {}
let count = 0
for (let i = 0; i < str.length; i++) {
const code = str[i]
if (code === str[i + 1]) { // 初次时候,两个相等
if (!tempObj[code]) {
tempObj[code] = 2 // 初次时候,两个相等就加 2
} else {
tempObj[code] += 1 // 后面相等加 1
}
} else {
if (!finalObj[code]) { // 不相等情况
finalObj[code] = 1 // 自己加 1
}
if (finalObj[code] < tempObj[code]) { // 和临时存储的数值进行对比,如果小于,则进行赋值
finalObj[code] = tempObj[code]
}
tempObj[code] = 0 // 设置为 0,因为连续相等这个条件已经断开了
}
} console.log('finalObj :', finalObj) // finalObj : { A: 4, B: 2, C: 2, D: 2, E: 1 }
for (const key in finalObj) {
const item = finalObj[key]
if (count < item) {
count = item
}
}
console.log('count :', count) // count : 4
return count
}
continuousString(str)
let r = 'AAABBCCAAAA DDE666FF' // 匹配模式:单个字符+第一个括号中的匹配值( * —— 有零个或者多个)
let match = r.match(/(\w)\1*/g) --- 正则中\1的用法---反向引用
console.log('match :', match) // match : [ 'AAA', 'BB', 'CC', 'AAAA', 'DD', 'E', '666', 'FF' ] match.sort((a, b) => {
return a.length < b.length // 从大到小
})
console.log('match :', match) // match : [ 'AAAA', 'AAA', '666', 'BB', 'CC', 'DD', 'FF', 'E' ]
console.log('连续相同字串长度 :', match[0].length) // 连续相同字串长度 : 4
返回字符串中最长连续相同字串的长度---正则实现与JavaScript实现的更多相关文章
- Interview----最长连续乘积字串
题目描述: 给一个浮点数序列,取最大乘积连续子串的值,例如 -2.5,4,0,3,0.5,8,-1,则取出的最大乘积连续子串为3,0.5,8. 也就是说,上述数组中,3 0.5 8这3个数的乘积3*0 ...
- 最长公共字串(LCS)最长连续公共字串(LCCS)
链接1:http://blog.csdn.net/x_xiaoge/article/details/7376220 链接2:http://blog.csdn.net/x_xiaoge/article/ ...
- leetcode-3 最长无重复字串
3. Longest Substring Without Repeating Characters 题面 Given a string, find the length of the longest ...
- 字符串中连续出现最多的子串 & 字符串中最长反复子串
字符串中连续出现最多的子串 & 字符串中最长反复子串 字符串中连续出现最多的子串 & 字符串中最长反复子串,这两个问题都能够用后缀数组来表示,至于后缀数组能够參考编程珠玑P156:后缀 ...
- 算法:Manacher,给定一个字符串str,返回str中最长回文子串的长度。
[题目] 给定一个字符串str,返回str中最长回文子串的长度 [举例] str="123", 1 str="abc1234321ab" 7 [暴力破解] 从左 ...
- c# 字符串中多个连续空格转为一个空格
#region 字符串中多个连续空格转为一个空格 /// <summary> /// 字符串中多个连续空格转为一个空格 /// </summary> /// <param ...
- 基于python 3.5 所做的找出来一个字符串中最长不重复子串算法
功能:找出来一个字符串中最长不重复子串 def find_longest_no_repeat_substr(one_str): #定义一个列表用于存储非重复字符子串 res_list=[] #获得字符 ...
- 【python】获取列表中最长连续数字
最近开发遇到一个功能需求,目的是要获取一个AI分析结果中最长连续帧,比如一个视频中连续3帧有人,那么我认为这个视频就是有人,我就要判断这个视频帧列表中是否有连续的三帧有人.本质就是获取列表中的最长连续 ...
- 7-19 计算有n个字符串中最长的字符串长度 (40 分)
编写程序,用于计算有n(1<n<10)个字符串中最长的字符串的长度.前导空格不要计算在内! 输入格式: 在第一行中输入n,接下的每行输入一个字符串 输出格式: 在一行中输出最长的字符串的长 ...
随机推荐
- 了解跨站请求伪造CSRF
参考以下两篇文章: https://www.cnblogs.com/Erik_Xu/p/5481441.html https://www.cnblogs.com/4littleProgrammer/p ...
- logo的普遍写法
h1为了搜索引擎优化<div class="logo"> <h1> <a href="#">XX</a> < ...
- Android中.9图片的了解和制作过程
个部分(九宫格),分别为4个角,4条边,以及一个中间区域,4个角是不做拉升的,所以还能一直保持圆角的清晰状态,而2条水平边和垂直边分别只做水平和垂直拉伸,所以不会出现边会被拉粗的情况,只有中间用黑线指 ...
- eclipse中server name选项变灰
删除workspace中.metadata\.plugins\org.eclipse.core.runtime\.settings目录下 org.eclipse.wst.server.core.pre ...
- svn 类似.gitignore功能实现
svn propset -R svn:ignore -F .cvsignore .
- ALSA 更改默认声卡
用 aplay -l 看一下各声卡的配置信息 创建 /etc/asound.conf,根据 aplay -l 的输入,选择需要的声卡信息,按如下格式添入,即可更改默认声卡 defaults.pcm. ...
- 剑指offer——67左旋转字符串
题目描述 汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果.对于一个给定的字符序列S,请你把其循环左移K位后的序列输出.例如,字符序列S=”abc ...
- docker学习日记一(镜像构建-container commit和image build)
构建镜像的方式两种: 一.根据已有的container构建-docker container commit 二.根据已有的image构建-docker image build(推荐) containe ...
- mysql数据库中某字段一部分乱码
笔者问题:mysql表(表中数据就是乱码,可能是插入时编码问题,这个问题以后解决)导出excel时数据中有乱码(但是在页面上查看是正常的),我们希望能导出一份没有中文乱码的excel 根据热力站中一次 ...
- idea springboot 打包 war
1.pom文件中将项目改为 war