具体思想:
采用字符栈可能更快一点;
没啥建设性,感觉更trik一点;
具体代码:
传统匹配:
class Solution {
public:
string reverseParentheses(string s) {
if(s.empty())
return "";
stack<int>st;
for(int i=0;i<s.size();i++){
if(s[i]=='('){
st.push(i);
continue;
}
if(s[i]==')'){
int index=st.top();
st.pop();
reverse(s.begin()+index,s.begin()+i);
}
}
string ret="";
for(auto& ch:s){
if(ch!='('&&ch!=')')
ret+=ch;
}
return ret;
}
};
字符栈匹配:
class Solution {
public:
string reverseParentheses(string s) {
if(s.empty())
return "";
stack<string>st;
string str="";
for(auto ch:s){
if(ch=='('){
st.push(str);
str="";
}else if(ch==')'){
reverse(str.begin(),str.end());
if(st.empty())
continue;
str=st.top()+str;
st.pop();
}else{
str+=ch;
}
}
return str;
}
};