LeetCode 每日一题 1190.反转每对括号间的子串

LeetCode 每日一题 1190.反转每对括号间的子串


问题描述

在这里插入图片描述

简要思路

使用栈存 ‘(’ ,每次遇到 ‘)’ 时,pop 一个’(’,并将两个括号之间的串反转。

代码

class Solution {
    
    
public:
    string reverseParentheses(string s) {
    
    
        int n = s.size();
        stack<int> t;
        
        for(int i = 0; i < n; i++){
    
    
            if(s[i] == '(') t.push(i);
            else if(s[i] == ')'){
    
    
                int a = t.top();
                t.pop();
                reverse(s.begin()+a, s.begin()+i);
            }
        }
        
        string res;
        for(int i = 0; i < n; i++){
    
    
            if(s[i] != '(' && s[i] != ')') res += s[i];
        }
        return res;
    }
};

猜你喜欢

转载自blog.csdn.net/qq_45438600/article/details/117269515
今日推荐