class Solution {
public:
string reverseParentheses(string s) {
int n = s.size();
stack<char> help;
string res;
//看清题目,没有括号不反转
for(int i=0;i<n;i++)
{
if(s[i]==')')
{
string tmp;
while(!help.empty()&&help.top()!='(')
{
tmp.push_back(help.top());
help.pop();
}
if(!help.empty())
{
help.pop();
}
for(int j=0;j<tmp.size();j++)
{
help.push(tmp[j]);
}
}
else
{
help.push(s[i]);
}
}
//因为没有括号不反转,不然上一步就可以直接return tmp
stack<char> help2;
while(!help.empty())
{
help2.push(help.top());
help.pop();
}
while(!help2.empty())
{
res.push_back(help2.top());
help2.pop();
}
return res;
}
};
反转每对括号间的子串(leetcode 1190)
最新推荐文章于 2024-09-27 11:26:03 发布