1190. Reverse Substrings Between Each Pair of Parentheses
解题思路
题目要求我们翻转括号内的字符串
这一题的关键在于,如何处理三种不同的情况:
- 遇到
(
:我们需要维护一个栈,把(
之前的字符串存起来 - 遇到
)
:把之前遍历过的(
之后的字符串翻转一次,并且从栈顶拿到字符串拼接到反转后的字符串前 - 遇到一般字符:用一个字符串变量保存起来
Javascript
/**
* @param {string} s
* @return {string}
*/
var reverseParentheses = function(s) {
const stack = [];
let result = '';
for(const c of s) {
switch(c) {
case '(':
stack.push(result);
result = '';
break;
case ')':
result = result.split('').reverse().join('');
const lastStr = stack.pop();
if(lastStr) {
result = lastStr + result;
}
break;
default:
result = result + c;
}
}
return result;
};