文章

99

粉丝

120

获赞

8

访问

96.5k

头像
删除无效的括号 301
备考心情
发布于2024年9月5日 11:50
阅读数 985

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...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发