1190. Reverse Substrings Between Each Pair of Parentheses

Leetcode link

解题思路

题目要求我们翻转括号内的字符串

这一题的关键在于,如何处理三种不同的情况:

  • 遇到 (:我们需要维护一个栈,把 ( 之前的字符串存起来
  • 遇到 ):把之前遍历过的 ( 之后的字符串翻转一次,并且从栈顶拿到字符串拼接到反转后的字符串前
  • 遇到一般字符:用一个字符串变量保存起来

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;
};

results matching ""

    No results matching ""