问题描述
简要思路
使用栈存 ‘(’ ,每次遇到 ‘)’ 时,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;
}
};