301.删除无效的括号
删除最小数量的无效括号,使得输入的字符串有效,返回所有可能的结果。
说明: 输入可能包含了除 (
和 )
以外的字符。
示例 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.删除无效的括号相关推荐
- 【LeetCode】【HOT】301. 删除无效的括号(递归)
[LeetCode][HOT]301. 删除无效的括号 文章目录 [LeetCode][HOT]301. 删除无效的括号 package hot;import java.util.ArrayList; ...
- Leecode 301. 删除无效的括号——Leecode每日一题系列
题目描述 给你一个由若干括号和字母组成的字符串 s ,删除最小数量的无效括号,使得输入的字符串有效. 返回所有可能的结果.答案可以按 任意顺序 返回. 示例 1: 输入:s = "()()) ...
- LeetCode 301. 删除无效的括号(回溯)
文章目录 1. 题目 2. 解题 1. 题目 删除最小数量的无效括号,使得输入的字符串有效,返回所有可能的结果. 说明: 输入可能包含了除 ( 和 ) 以外的字符. 示例 1: 输入: "( ...
- 【LeetCode笔记】301. 删除无效的括号(Java、DFS、字符串)
文章目录 题目描述 思路 && 代码 二刷 题目描述 [所有可能结果]-> [暴力DFS] 思路 && 代码 代码比较长,但是总体思路很清晰. 剪枝:舍弃左括号. ...
- 301 Remove Invalid Parentheses 删除无效的括号
删除最小数目的无效括号,使输入的字符串有效,返回所有可能的结果. 注意: 输入可能包含了除 ( 和 ) 以外的元素. 示例 : "()())()" -> ["()( ...
- 1249. 移除无效的括号
1249. 移除无效的括号 题目 解法 题目 移除无效的括号 给你一个由 '('.')' 和小写字母组成的字符串 s. 你需要从字符串中删除最少数目的 '(' 或者 ')' (可以删除任意位置的括号) ...
- mysql 树表删除无效节点
前言 mysql 5.5.40 树表 菜单树的表结构: 删除无效节点 select @parentIds := concat('0,', GROUP_CONCAT(menu_id)) from sys ...
- consul删除无效服务
curl http://server_ip:8500/v1/agent/service/deregister/paas-portal-sit-9003 -X PUT 删除无效服务: paas-port ...
- Qt 删除无效Kits配置信息
Qt 删除无效Kits配置信息 1 问题描述 2 解决方法:修改xml配置文件 2.1 xml配置文件路径 2.2 XML配置文件的对应关系 2.3 修改构建套件(Kit)中的无效项 2.4 修改QT ...
- 硬盘文件无法删除(360强力删除无效)的解决方法
不知何原因,移动硬盘上的文件突然无法使用并且无法删除,尝试360强力删除无效,网上一些说到安全模式或利用bat批处理命令行删除均无效.经过一番周折,终于找到解决方案,mark在此,也希望能帮到再遇到类 ...
最新文章
- Django的下载及命令
- oracle 补丁打不上_oracle 打补丁常见问题
- 'SVN更新' has encountered a problem :An internal error occurred during: svn错误
- 【excrt】屠龙勇士(luogu 4774)
- 微信支持环信_环信客户互动云v5.39已发布:支持微信小程序接入
- 【SQL】substr截取结果和想象中有差异?
- C/C++_Lambda表达式
- mysql join联接_MySQL_join连接
- Collecting package metadata (current_repodata.json): fail亲测成功
- 小程序获取微信登陆用户
- c语言求开平方标准库函数,c语言如何求平方根 C语言中开平方函数是什么?
- Windows Filtering Platform Windows筛选平台
- 1193 Eason
- Ubuntu下安装Nodejs, Nide
- ibatis java.util.Map作为parameterClass和resultClass(转)
- vscode1.65.2 + anaconda 在python拓展为2022.2.1924087327版本上的问题及解决
- 智和网管平台SugarNMS国防军工行业综合网管解决方案
- 学计算机类专业对电脑有要求,学数字媒体技术专业对电脑配置有什么要求?各位本专业的前辈们帮帮我!...
- E都市圈地 三维地图搜索的商业模式在哪里
- 计算机专业能力提升,计算机专业学生能力提升的探索.pdf
热门文章
- 让网页附件为Word或Excel的文件,下载时直接弹出下载对话框,而不打开它
- 布局篇(1)—If you love css …
- 倍增法求LCA(最近公共最先)
- Kafka 中 partition replica 默认分配机制
- 疯狂的图形(利用C# + GDI plus模拟杂乱无章的现实场景)
- Linux运维(三)
- 小米2系列板砖自救行动
- Android学习小Demo(19)利用Loader来实时接收短信
- 使用jQuery的load方法实现div局部刷新
- php cookbook怎么样,《PHP Cookbook》学习笔记(三)