力扣1021.删除最外层的括号
-
遍历所有字符
- 当)时 栈顶元素出栈
- 当(时 入栈
- 当栈为空时 说明恰好扫描了一个原语
- 这个原语的首尾字符不应该放入答案
- 因此调整if判断顺序使首尾不放进去即可
cpp
class Solution {
public:
string removeOuterParentheses(string s) {
vector<char> st;
string res;
for(char c:s)
{
if(c == ')')
st.pop_back();
//只要当前的字符不是首尾 就可以放
if(!st.empty())
res.push_back(c);
if(c == '(')
st.push_back(c);
}
return res;
}
};