文章
99
粉丝
120
获赞
8
访问
96.5k
class Solution {
public:
bool check(string s){ //判断序列是否合法
int cc = 0;
for(char ch : s){
if(ch=='(')cc++;
else if(ch==')'){
cc--;
if(cc<0){
return false;
}
}
}
return cc==0;
}
vector<string> removeInvalidParentheses(string s) {
vector<string>ans;
unordered_set<string>se;
se.insert(s);
//bfs每轮删一个括号直至出现合法字符串
while(1){
for(string x : se){
if(check(x))ans.push_back(x);
}
if(ans.size()>0)return ans;
unordered_set<string>nse;
for(string x : se){//枚举所有串
for(int i = 0; i < x.size(); i++){//枚举删哪个
if(i>0 && x[i]==x[i-1])continue;
if(x[i]=='(' || x[i]==')'){
nse.insert(x.substr(0,i...
登录后发布评论
暂无评论,来抢沙发