解析
- 这种方案比较考察基础操作,要树立清楚思路
- 碰到左括号怎么办
- 将当前tmp字符串放到栈中,然后将tmp变为空,重新开始
- 碰到右括号怎么办
- 就意味着当前的临时字符串应该翻转了,而且还有处理之前放栈中的字符串
- 碰到普通字符怎么办
- 直接添加到临时字符串就可以
- 碰到左括号怎么办
class Solution {
public:
string reverseParentheses(string s) {
int n = s.length();
if (0 == n) {
return "";
}
string tmp("");
stack<string> stk;
for (int i = 0; i < n; i++) {
if ('(' == s[i]) {
stk.push(tmp);
tmp = "";
} else if (')' == s[i]) {
tmp = reverse(tmp.begin(), tmp.end());
tmp = stk.top() + tmp;
stk.pop();
} else {
tmp += s[i];
}
}
return tmp;
}
};