美文网首页
394. Decode String

394. Decode String

作者: jluemmmm | 来源:发表于2021-02-27 15:15 被阅读0次

给定一个经过编码的字符串,返回它解码后的字符串。

编码规则为:k[encoded_string],表示方括号内部的字字符串重复 k 次。假设输入字符串总是有效的,输入字符串没有额外的空格,且输入的方括号总是符合格式要求的。原始数据不包含数字,所有的数字只表示重复的 k 次。

循环

从第一个右括号开始,解析左边的括号,进行循环处理。时间复杂度O(N),空间复杂度O(N)

  • Runtime: 76 ms, faster than 74.63%
  • Memory Usage: 38.4 MB, less than 77.07%
/**
 * @param {string} s
 * @return {string}
 */
var decodeString = function(s) {
    while(s.indexOf(']') !== -1) {
        let right = s.indexOf(']')
        let left = s.substring(0, right).lastIndexOf('[')
        let i = left
        
        while(i > 0 && /[0-9]/.test(s[i - 1])) {
            i--
        }
        let num = s.substring(i, left) - '0'
        let str = s.substring(left + 1, right)
        let cur = ''
        while(num > 0) {
            cur += str
            num--
        }
        s = s.substring(0, i) + cur + s.substring(right + 1)
    }
    return s
};

相关文章

网友评论

      本文标题:394. Decode String

      本文链接:https://www.haomeiwen.com/subject/hsqifltx.html