LeetCode 1190 反转每对括号间的子串[栈]

Posted HERODING23

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 1190 反转每对括号间的子串[栈]相关的知识,希望对你有一定的参考价值。

在这里插入图片描述
解题思路:
遇到字符串有条件变化(遇到括号或者运算符),第一个想到的方法就应该是栈,毕竟栈的方法是基于递归的,而括号也是递归的形式,本题首先定义好栈和空字符串,遇到左括号当前遍历的序列进栈,遇到右括号翻转当前序列并把栈顶出栈,否则就是单纯字符入字符串,仔细推理应该能够找到这样的规律,代码如下:

class Solution {
public:
    string reverseParentheses(string s) {
        // 定义栈和字符串
        stack<string> st;
        string str;
        for(char& c : s) {
            // 遇到左括号当前遍历的序列进栈
            if(c == '(') {
                st.push(str);
                str = "";
            } else if(c == ')') {// 遇到右括号翻转当前序列并把栈顶出栈
                reverse(str.begin(), str.end());
                str = st.top() + str;
                st.pop();
            } else {// 遍历数组
                str.push_back(c);
            }
        }
        return str;
    }
};


/*作者:heroding
链接:https://leetcode-cn.com/problems/reverse-substrings-between-each-pair-of-parentheses/solution/czhan-by-heroding-n2uo/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。*/

以上是关于LeetCode 1190 反转每对括号间的子串[栈]的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 1190 反转每对括号间的子串[栈]

1190. 反转每对括号间的子串

1190. 反转每对括号间的子串

1190. 反转每对括号间的子串

2021/5/26 刷题笔记反转每对括号间的子串

力扣练习——12 反转每对括号间的子串