写在前面: 挺简单的一道栈应用,定义一个string来记录结果,用栈记录过程就行了,需要加两个判断来去掉外围的括号
欢迎关注我的力扣github仓库,有JavaScript和C++两个版本,每日更新
C++代码:
class Solution {
public:
string removeOuterParentheses(string S) {
string res;
stack<char> stack;
for(int i=0;i<S.length();i++){
if(S[i]=='('){
if(!stack.empty())
res+=S[i];
stack.push(S[i]);
}
else{
res+=S[i];
stack.pop();
if(stack.empty())
res.pop_back();
}
}
return res;
}
};
JS代码:
/**
* @param {string} S
* @return {string}
*/
var removeOuterParentheses = function(S) {
var ch=[],res=''; //ch为栈,res存放返回结果
for(let i=0;i<S.length;i++){
if(S[i]=='('){
if(ch.length>0) //最外层的不被加入res中
res+=S[i];
ch.push(S[i]);
}
else{
res+=S[i];
ch.pop();
if(ch.length==0) //最外层的不被加入res中
res=res.substr(0,res.length-1);
}
}
return res;
};