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实现的更多相关文章

  1. Interview----最长连续乘积字串

    题目描述: 给一个浮点数序列,取最大乘积连续子串的值,例如 -2.5,4,0,3,0.5,8,-1,则取出的最大乘积连续子串为3,0.5,8. 也就是说,上述数组中,3 0.5 8这3个数的乘积3*0 ...

  2. 最长公共字串(LCS)最长连续公共字串(LCCS)

    链接1:http://blog.csdn.net/x_xiaoge/article/details/7376220 链接2:http://blog.csdn.net/x_xiaoge/article/ ...

  3. leetcode-3 最长无重复字串

    3. Longest Substring Without Repeating Characters 题面 Given a string, find the length of the longest ...

  4. 字符串中连续出现最多的子串 &amp; 字符串中最长反复子串

    字符串中连续出现最多的子串 & 字符串中最长反复子串 字符串中连续出现最多的子串 & 字符串中最长反复子串,这两个问题都能够用后缀数组来表示,至于后缀数组能够參考编程珠玑P156:后缀 ...

  5. 算法:Manacher,给定一个字符串str,返回str中最长回文子串的长度。

    [题目] 给定一个字符串str,返回str中最长回文子串的长度 [举例] str="123", 1 str="abc1234321ab" 7 [暴力破解] 从左 ...

  6. c# 字符串中多个连续空格转为一个空格

    #region 字符串中多个连续空格转为一个空格 /// <summary> /// 字符串中多个连续空格转为一个空格 /// </summary> /// <param ...

  7. 基于python 3.5 所做的找出来一个字符串中最长不重复子串算法

    功能:找出来一个字符串中最长不重复子串 def find_longest_no_repeat_substr(one_str): #定义一个列表用于存储非重复字符子串 res_list=[] #获得字符 ...

  8. 【python】获取列表中最长连续数字

    最近开发遇到一个功能需求,目的是要获取一个AI分析结果中最长连续帧,比如一个视频中连续3帧有人,那么我认为这个视频就是有人,我就要判断这个视频帧列表中是否有连续的三帧有人.本质就是获取列表中的最长连续 ...

  9. 7-19 计算有n个字符串中最长的字符串长度 (40 分)

    编写程序,用于计算有n(1<n<10)个字符串中最长的字符串的长度.前导空格不要计算在内! 输入格式: 在第一行中输入n,接下的每行输入一个字符串 输出格式: 在一行中输出最长的字符串的长 ...

随机推荐

  1. 从文本文件hello.txt到可执行文件hello

    第一阶段 使用编辑器编写的源代码 (.txt) 文件 hello.c.经过 Pre-processor 进行前处理.在前处理阶段,当 pre-processor 读到代码中的#include<s ...

  2. Python 十大装 B 语法解析

    Python 是一种代表简单思想的语言,其语法相对简单,很容易上手.不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了.本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并 ...

  3. cookie和session 的初步介绍

    Cookie和Session http协议不保存用户状态(信息) Cookie和Session都是为了能够保存用户信息 Cookie: 本质:保存在浏览器上的键值对 用途:标识当前用户信息 cooki ...

  4. BZOJ 3328: PYXFIB 解题报告

    BZOJ 3328: PYXFIB 题意 给定\(n,p,k(1\le n\le 10^{18},1\le k\le 20000,1\le p\le 10^9,p \ is \ prime,k|(p- ...

  5. CTSC2019

    (upd:随机立方体AC) 太菜了只会部分分.以后慢慢补坑吧…… 随机立方体: 30分: 正常人都能想到的的转移状态(我的确是弱智),从大往小填数,记录有多少个极大值点和三个方向上各占了多少.转移可以 ...

  6. delphi 数据处理

    TStringStream 怎样转换String procedure TForm1.Button1Click(Sender: TObject); var ss:TStringStream; str:S ...

  7. NX二次开发-UFUN打开本地文本文档uc4504

    NX9+VS2012 #include <uf.h> #include <uf_cfi.h> #include <uf_ui.h> using std::strin ...

  8. STM32嵌入式开发学习笔记(一)

    本文中,笔者将介绍使用嵌入式开发工具Keil uVision5,使用C语言,对微处理器STM32F103C8进行嵌入式开发. 开发使用C语言,首先需要新建一个C语言文件,将其设为主函数的入口,因此,将 ...

  9. ORM-Dapper:Dapper百科

    ylbtech-ORM-Dapper:Dapper百科 1.返回顶部   2.返回顶部   3.返回顶部   4.返回顶部   5.返回顶部     6.返回顶部   作者:ylbtech出处:htt ...

  10. cd 命令行进入目标文件夹

    当我在默认路径中使用cd命令时,如果我要进入D:\mytext 文件夹,那么直接使用cd D:\mytext 是不行的 正确的使用是先使用d:进入D盘,然后再进入mytext文件夹