//str = "2[a]1[bc]", 返回 "aabc".
// str = "2[e2[d]]", 返回 "eddedd".
// str = "3[abc]2[cd]ff", 返回 "abcabcabccdcdff".
实现代码如下
function handleStr(str) {
if(typeof str !== 'string'){
throw "请输入字符串";
}
let index = 0
let warehouse = []
while(index < str.length){
if(str[index] === '['){
warehouse.push(index)
}
if(warehouse.length && str[index] === ']'){
str = changeStr(str, warehouse.pop(), index);
index = 0
continue
}
index++
}
return str
}
function changeStr(str, start, end) {
// 获取在大括号中的值字符串
let temp = str.substring(start+1, end)
// 获取需要重复的次数
let cloneNumber = ''
while (str[--start]>=0){
cloneNumber = str[start] + cloneNumber
}
let resultTemp = ''
for(let i=0;i<cloneNumber;i++){
resultTemp += temp
}
return str.substring(0, start+1) + resultTemp + str.substring(end+1)
}
let str = "2[a]1[bc]"
let str2 = "2[e2[d]]"
let str3 = "3[abc]2[cd]ff"
console.log(handleStr(str3))