博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LeetCode] Remove Invalid Parentheses
阅读量:6253 次
发布时间:2019-06-22

本文共 1549 字,大约阅读时间需要 5 分钟。

This problem can be solved very elegantly using BFS, as in .

The code is rewritten below in C++.

1 class Solution { 2 public: 3     vector
removeInvalidParentheses(string s) { 4 vector
parens; 5 queue
candidates; 6 unordered_set
visited; 7 candidates.push(s); 8 visited.insert(s); 9 bool found = false;10 while (!candidates.empty()) {11 string now = candidates.front();12 candidates.pop();13 if (isValid(now)) {14 parens.push_back(now);15 found = true;16 }17 if (!found) {18 int n = now.length();19 for (int i = 0; i < n; i++) {20 if (now[i] == '(' || now[i] == ')') {21 string next = now.substr(0, i) + now.substr(i + 1);22 if (visited.find(next) == visited.end()) {23 candidates.push(next);24 visited.insert(next);25 }26 }27 }28 }29 }30 return parens;31 }32 private:33 bool isValid(string& s) {34 int c = 0, n = s.length();35 for (int i = 0; i < n; i++) {36 if (s[i] == '(') c++;37 if (s[i] == ')' && !c--) return false;38 }39 return !c;40 }41 };

 

转载于:https://www.cnblogs.com/jcliBlogger/p/4939739.html

你可能感兴趣的文章
SVN与TortoiseSVN实战:补丁详解
查看>>
Centes7 使用 xshell 登陆
查看>>
TestNG源代码分析:依赖管理的实现
查看>>
VMWare 安装时报错 tools-windows.msi failed报错解决办法
查看>>
java一些面试题
查看>>
如何使用dll和lib
查看>>
干货型up主
查看>>
文件与二进制流互转
查看>>
获取页面中所有dropdownlist类型控件
查看>>
【转自ITPUB】SYNONYM关于underlying table权限的小小发现
查看>>
halcon图像合并(贴图到指定位置)
查看>>
stark组件(2):提取公共视图函数、URL分发和设置别名
查看>>
android——使用Interceptor设置缓存来给服务器减负
查看>>
样式独立性的解决方案
查看>>
刷leetcode是什么样的体验?【转】
查看>>
linux内核数据结构之kfifo【转】
查看>>
c++学习笔记(新手学习笔记,如有错误请与作者联系)
查看>>
java集合复制和反转
查看>>
记录openlaw的反爬
查看>>
Matlab数据转化至python端,并写入数据库
查看>>