删除最小数量的无效括号,使得输入的字符串有效,返回所有可能的结果。

说明: 输入可能包含了除 ( 和 ) 以外的字符。

示例 1:

输入: "()())()"
输出: ["()()()", "(())()"]

示例 2:

输入: "(a)())()"
输出: ["(a)()()", "(a())()"]

示例 3:

输入: ")("
输出: [""]

class Solution {
public:
    vector<string> removeInvalidParentheses(string s) {
        vector<string> res;
        unordered_set<string> visited{{s}};
        queue<string> q{{s}};
        bool found = false;
        while (!q.empty()) {
            string t = q.front(); q.pop();
            if (isValid(t)) {
                res.push_back(t);
                found = true;
            }
            if (found) continue;
            for (int i = 0; i < t.size(); ++i) {
                if (t[i] != '(' && t[i] != ')') continue;
                string str = t.substr(0, i) + t.substr(i + 1);
                if (!visited.count(str)) {
                    q.push(str);
                    visited.insert(str);
                }
            }
        }
        return res;
    }
    bool isValid(string t) {
        int cnt = 0;
        for (int i = 0; i < t.size(); ++i) {
            if (t[i] == '(') ++cnt;
            else if (t[i] == ')' && --cnt < 0) return false;
        }
        return cnt == 0;
    }
};

301.删除无效的括号相关推荐

  1. 【LeetCode】【HOT】301. 删除无效的括号(递归)

    [LeetCode][HOT]301. 删除无效的括号 文章目录 [LeetCode][HOT]301. 删除无效的括号 package hot;import java.util.ArrayList; ...

  2. Leecode 301. 删除无效的括号——Leecode每日一题系列

    题目描述 给你一个由若干括号和字母组成的字符串 s ,删除最小数量的无效括号,使得输入的字符串有效. 返回所有可能的结果.答案可以按 任意顺序 返回. 示例 1: 输入:s = "()()) ...

  3. LeetCode 301. 删除无效的括号(回溯)

    文章目录 1. 题目 2. 解题 1. 题目 删除最小数量的无效括号,使得输入的字符串有效,返回所有可能的结果. 说明: 输入可能包含了除 ( 和 ) 以外的字符. 示例 1: 输入: "( ...

  4. 【LeetCode笔记】301. 删除无效的括号(Java、DFS、字符串)

    文章目录 题目描述 思路 && 代码 二刷 题目描述 [所有可能结果]-> [暴力DFS] 思路 && 代码 代码比较长,但是总体思路很清晰. 剪枝:舍弃左括号. ...

  5. 301 Remove Invalid Parentheses 删除无效的括号

    删除最小数目的无效括号,使输入的字符串有效,返回所有可能的结果. 注意: 输入可能包含了除 ( 和 ) 以外的元素. 示例 : "()())()" -> ["()( ...

  6. 1249. 移除无效的括号

    1249. 移除无效的括号 题目 解法 题目 移除无效的括号 给你一个由 '('.')' 和小写字母组成的字符串 s. 你需要从字符串中删除最少数目的 '(' 或者 ')' (可以删除任意位置的括号) ...

  7. mysql 树表删除无效节点

    前言 mysql 5.5.40 树表 菜单树的表结构: 删除无效节点 select @parentIds := concat('0,', GROUP_CONCAT(menu_id)) from sys ...

  8. consul删除无效服务

    curl http://server_ip:8500/v1/agent/service/deregister/paas-portal-sit-9003 -X PUT 删除无效服务: paas-port ...

  9. Qt 删除无效Kits配置信息

    Qt 删除无效Kits配置信息 1 问题描述 2 解决方法:修改xml配置文件 2.1 xml配置文件路径 2.2 XML配置文件的对应关系 2.3 修改构建套件(Kit)中的无效项 2.4 修改QT ...

  10. 硬盘文件无法删除(360强力删除无效)的解决方法

    不知何原因,移动硬盘上的文件突然无法使用并且无法删除,尝试360强力删除无效,网上一些说到安全模式或利用bat批处理命令行删除均无效.经过一番周折,终于找到解决方案,mark在此,也希望能帮到再遇到类 ...

最新文章

  1. Django的下载及命令
  2. oracle 补丁打不上_oracle 打补丁常见问题
  3. 'SVN更新' has encountered a problem :An internal error occurred during: svn错误
  4. 【excrt】屠龙勇士(luogu 4774)
  5. 微信支持环信_环信客户互动云v5.39已发布:支持微信小程序接入
  6. 【SQL】substr截取结果和想象中有差异?
  7. C/C++_Lambda表达式
  8. mysql join联接_MySQL_join连接
  9. Collecting package metadata (current_repodata.json): fail亲测成功
  10. 小程序获取微信登陆用户
  11. c语言求开平方标准库函数,c语言如何求平方根 C语言中开平方函数是什么?
  12. Windows Filtering Platform Windows筛选平台
  13. 1193 Eason
  14. Ubuntu下安装Nodejs, Nide
  15. ibatis java.util.Map作为parameterClass和resultClass(转)
  16. vscode1.65.2 + anaconda 在python拓展为2022.2.1924087327版本上的问题及解决
  17. 智和网管平台SugarNMS国防军工行业综合网管解决方案
  18. 学计算机类专业对电脑有要求,学数字媒体技术专业对电脑配置有什么要求?各位本专业的前辈们帮帮我!...
  19. E都市圈地 三维地图搜索的商业模式在哪里
  20. 计算机专业能力提升,计算机专业学生能力提升的探索.pdf

热门文章

  1. 让网页附件为Word或Excel的文件,下载时直接弹出下载对话框,而不打开它
  2. 布局篇(1)—If you love css …
  3. 倍增法求LCA(最近公共最先)
  4. Kafka 中 partition replica 默认分配机制
  5. 疯狂的图形(利用C# + GDI plus模拟杂乱无章的现实场景)
  6. Linux运维(三)
  7. 小米2系列板砖自救行动
  8. Android学习小Demo(19)利用Loader来实时接收短信
  9. 使用jQuery的load方法实现div局部刷新
  10. php cookbook怎么样,《PHP Cookbook》学习笔记(三)