百词zhan2020/10 笔试算法题

88 阅读1分钟

连续出现的字符串压缩,记录连续出现的次数,例如输入

aabccccaaa

输出

a2bc4a3

极限条件,只能输入字母且字符个数不能超过100

思路: 输入字符串,输出字符串,使用操作字符串的形式 操作字符串,正则筛选

为什么使用 \1+ 出现1次或多次匹配不到只出现1次的字符串???

function getZipStr(str){
let reg = /([a-z])\1*/g  // 匹配第一个括号内部的字符 贪婪匹配符号 
let result = '' let arr = str.match(reg) // ['aa', 'b', 'cccc', 'aaa']
 for(let item of arr){
    if(item.length>1){
        result = result + item.substring(0,1) + item.length
    }else{
        result = result + item
    }
 }
 return result
}