gpt4 book ai didi

JavaScript 算法 : decompress a compressed string

转载 作者:行者123 更新时间:2023-12-04 14:30:45 30 4
gpt4 key购买 nike

我想编写一个函数,它接受一个压缩字符串并输出解压缩字符串。
a2b2c3 这样的压缩字符串解压字符串为 aabbccc更多的例子是

`a` -> `a`
`ab12` -> `abbbbbbbbbbbb`
`a3b2a2` -> `aaabbaa
我试图实现它,但对于像 ab12 这样的压缩字符串来说,它真的很困惑和有问题。
function isNumeric(num) {
if (num === '') return false
if (num === null) return false
return !isNaN(num)
}


function decompress(compressedStr) {
const array = compressedStr.split('')
let prevChar, str = ''
for(let i = 0; i < array.length; i++) {
if(i === 0) {prevChar = array[i]}
if(isNumeric(array[i])) {
str += prevChar.repeat(Number(array[i]))
prevChar = null
} else {
if(!prevChar) prevChar = array[i]
else {
str += prevChar
prevChar = array[i]
}
}
}

return str
}

现在它适用于 a3b2a2但对于像 ab12 这样的情况来说,它是有问题的.
需要帮助重写此函数以使其工作。

最佳答案

您可以使用 String#replace 同时捕获字符和重复次数。

function decompress(str) {
return str.replace(/(\D)(\d+)/g, (_, g1, g2) => g1.repeat(g2));
}
console.log(decompress('a'));
console.log(decompress('ab12'));
console.log(decompress('a3b2a2'));

关于JavaScript 算法 : decompress a compressed string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69546803/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com