我正在尝试解决一个问题来创建新的压缩字符串。每个字符旁边都有一个计数,我应该按字母顺序提出一个新字符串,然后是字符串中该字符的总数。
例如:
输入: “a10b1a5c1” 输出: “a15b1c1”
输入: “b10a1b5c1” 输出: “a1b15c1”
我是如何处理这个问题的?
1.具有键作为字符,值作为计数的对象
2.将对象转换为字符串
function stringCompression(s) {
const object={}
for(var i=0; i<s.length-1; i++) {
if(s[i].match(/[0-9]/)!==null && s[i+1].match(/[a-zA-Z]/) === null) {
if(object.hasOwnProperty("s[i]")){
// Add previous and current value
} else {
object[s[i-1]]=parseInt(s[i]+s[i+1])
}
}
}
return object
}
// output should be a15b1c1
const output= stringCompression("a10b1a5c1");
const final = Object.keys(output).map(key => `${key}${output[key]}`).join("");
console.log(final) //a10