function changeString(s: string): string {
let arr = s.split(''), times = '', temp = '', res = ''
let point = 0, level = 1
while (point < s.length) {
if (s[point] == '1' || s[point] == '2' || s[point] == '3' || s[point] == '4' || s[point] == '5' || s[point] == '6' || s[point] == '7' || s[point] == '8' || s[point] == '9' || s[point] == '0') {
times += s[point]
point++
} else if (s[point] == '[') {
point++
while (s[point] !== ']' || level > 1) {
if (s[point] == '1' || s[point] == '2' || s[point] == '3' || s[point] == '4' || s[point] == '5' || s[point] == '6' || s[point] == '7' || s[point] == '8' || s[point] == '9' || s[point] == '0') {
level++
} else if (s[point] == ']') {
level--
}
temp += s[point]
point++
}
point++
temp = changeString(temp)
for (let i = 0; i < Number(times); i++) {
res += temp
}
times = ''
temp = ''
} else {
res += s[point]
point++
}
}
return res
}
console.log(changeString('2[abc3[a]]bcd2[r]'))