JSFiddle - React, Tailwind, and code Playground

by Yurii Predborskyi

JavaScript

let decodeString = function(s) {
    function findLength(string, index) {
        while(string[index] !== ']') {
            index++;
        }
        return index;
    }

    let res = '';
    for (let i = 0; i < s.length; i++) {
    		console.log('res is ', res);
        if (s[i] === '[') {
        		console.log('found new encoded string');
            let repeats = s[i - 1];
            let finish = findLength(s, i + 1);
            let substring = s.substr(i + 1, finish);
            for (let cnt = 0; cnt < repeats; cnt++) {
                res += substring;
            }
        		console.log('decoding result: ', res);
            i = finish + 1;
        }
    }
    return res;
};

let s = "3[a]2[bc]";
console.log(decodeString(s));