问题描述:
首先我只用了2个辅助标志位,其他的都没有用。要说还是新建了一个新字符串变量。
利用2个标志位来标志
1.本位是不是最后的那个括号(tag==0)
2.本位是不是开始的那个括号(前一位的tag==0)
这里将括号转换成对应的数字比较好解决,一个加法足够。 '('对应的是1 ')'对应的是-1
两个标志位开始都默认为0,即开始的第一个左边的括号肯定不要。
有问题留言一起思考哈
附一下代码:
class Solution {
public:
string removeOuterParentheses(string S) {
string res;
int n=S.size();
int tag=0;
int tag2=0;
for(int i=0;i<n;i++){
if(S[i]=='(') tag++;
else if(S[i]==')') tag--;
if(tag!=0&&tag2!=0){
res+=S[i];
}
tag2=tag;
}
return res;
}
};