压缩字符aabbbcccc+++;到a@2b@3c@4+@3在javascript中

压缩字符aabbbcccc+++;到a@2b@3c@4+@3在javascript中,javascript,Javascript,上面的问题是在面试时提出的,代码必须接受aabbbcccc++之类的输入,并且应该输出a@2b@3c@4+@3基于字符串出现的数量。您可以使用regex并在replace函数中捕获 ()\1+-此处的表示匹配任何内容\1+表示通过()一次或多次匹配相同的字符。在回调函数中,我们首先返回连接和匹配长度和@ let str=`aabbbcccc+++` 让op=str.replace(/()\1+/g,函数(匹配,第一个){ 返回第一个+'@'+match.length; }) console.l

上面的问题是在面试时提出的,代码必须接受aabbbcccc++之类的输入,并且应该输出a@2b@3c@4+@3基于字符串出现的数量。

您可以使用regex并在replace函数中捕获

()\1+
-此处的
表示匹配任何内容
\1+
表示通过
()
一次或多次匹配相同的字符。在回调函数中,我们首先返回连接
匹配长度
@

let str=`aabbbcccc+++`
让op=str.replace(/()\1+/g,函数(匹配,第一个){
返回第一个+'@'+match.length;
})

console.log(op)
您可以使用regex并在replace函数中捕获

()\1+
-此处的
表示匹配任何内容
\1+
表示通过
()
一次或多次匹配相同的字符。在回调函数中,我们首先返回连接
匹配长度
@

let str=`aabbbcccc+++`
让op=str.replace(/()\1+/g,函数(匹配,第一个){
返回第一个+'@'+match.length;
})

log(op)
您可以尝试regex方法,也可以使用下面的代码段

  • 基本回路
  • 函数压缩(str){
    let newstr=“”;
    让计数=1;
    设指数=0;
    
    对于(设i=0;i),您可以尝试使用regex方法,也可以使用下面的代码段

  • 基本回路
  • 函数压缩(str){
    let newstr=“”;
    让计数=1;
    设指数=0;
    
    对于(假设i=0;我从一个循环开始…从一个循环开始…我们如何在不使用内置方法的情况下实现它?比如replaceetc@JpG您可以使用任何循环,并保留两个变量,一个用于当前字符,另一个用于连续数字计数。根据条件,您可以生成所需的字符串。如果您觉得有任何问题,请尝试使用循环mment将再次添加解决方案。以下是逻辑,请验证其正确性,函数compress(str){let newstr='';let count=1;let index=0(设i=0;i如何在不使用内置方法的情况下执行此操作?如替换etc@JpG您可以使用任何循环,并保留两个变量,一个用于当前字符,另一个用于连续数字计数。根据条件,您可以生成所需的字符串。如果觉得有任何问题,请尝试使用循环。再次注释将添加解决方案。以下是逻辑,请验证正确性,函数compress(str){let newstr='';let count=1;let index=0 for(let i=0;i