You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript压缩字符串解压函数开发:解决多位数计数场景适配问题

JavaScript 多位数压缩字符串解压实现

原有代码的问题是仅支持单数字重复计数,遇到连续数字组成的多位数时会拆分处理,导致解压结果错误。

修正后完整代码

function isNumeric(num) {
    if (num === '') return false
    if (num === null) return false
    return !isNaN(num)
}

function decompress(compressedStr) {
    let result = ''
    // 临时存储当前待重复的字符
    let currentChar = ''
    // 临时收集连续的数字字符
    let numStr = ''

    for (const char of compressedStr) {
        if (isNumeric(char)) {
            numStr += char
        } else {
            // 遇到非数字字符,先处理之前累积的数字和待重复字符
            if (numStr) {
                result += currentChar.repeat(Number(numStr))
                numStr = ''
                currentChar = char
            } else {
                // 没有待处理的数字,将上一个字符直接加入结果
                if (currentChar) {
                    result += currentChar
                }
                currentChar = char
            }
        }
    }

    // 处理遍历结束后剩余的未处理内容
    if (numStr) {
        result += currentChar.repeat(Number(numStr))
    } else {
        result += currentChar
    }

    return result
}

验证测试用例

  • decompress('a') 输出结果:a
  • decompress('ab12') 输出结果:abbbbbbbbbbbb
  • decompress('a3b2a2') 输出结果:aaabbaa

内容的提问来源于stack exchange,提问作者Joji

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 03:06:03