< 문제 간단설명 >
[] 괄호 쌍 안에 있는 문자열을 바로 앞에 온 숫자만큼 반복한다. 예를 들어 "3[a]2[bc]" 일 경우엔, "aaabcbc" 가 된다.
/**
* @param {string} s
* @return {string}
*/
var decodeString = function(s) {
let stack = [];
let curStr = '';
let curCnt = '';
s.split('').forEach((el) => {
if(el === '[') {
stack.push(curCnt);
stack.push(curStr);
curStr = '';
curCnt = '';
}
else if(el === ']') {
let prevStr = stack.pop();
let prevCnt = stack.pop();
curStr = prevStr + curStr.repeat(Number(prevCnt));
}
else if('0' <= el && el <= '9') {
curCnt += el;
}
else {
curStr += el;
}
});
return curStr;
};
'PS > LeetCode' 카테고리의 다른 글
LeetCode / Heap / 692번 / Top K Frequent Words / JS (0) | 2023.04.18 |
---|---|
LeetCode / Heap / 1046번 / Last Stone Weight / JS (0) | 2023.04.18 |
LeetCode / Stack / 844번 / Backspace String Compare / JS (0) | 2023.04.18 |
LeetCode / Binary Search Tree / 235번 / Lowest Common Ancestor of a Binary Search Tree / JS (0) | 2023.04.05 |