leetcode 301 : Remove Invalid Parentheses
来源:互联网 发布:修改oracle默认端口 编辑:程序博客网 时间:2024/05/16 11:12
1、原题如下:
Remove the minimum number of invalid parentheses in order to make the input string valid. Return all possible results.
Note: The input string may contain letters other than the parentheses ( and ).
Examples:
“()())()” -> [“()()()”, “(())()”]
“(a)())()” -> [“(a)()()”, “(a())()”]
“)(” -> [“”]
2、解题如下:
class Solution {public: vector<string> removeInvalidParentheses(string s) { unordered_set<string> result; int left_erase=0; int right_erase=0; for(auto c:s) { if(c=='(') {left_erase++;} if(c==')') { if(left_erase!=0) left_erase--; else right_erase++; } } traverse(s,0,left_erase,right_erase,0,"",result); return vector<string> (result.begin(),result.end()); } void traverse(string s,int count,int left_erase,int right_erase,int pair,string tmp,unordered_set<string>& result) { if(count==s.size()) { if(left_erase==0&&right_erase==0&&pair==0) result.insert(tmp); return; } if(s[count]!='('&&s[count]!=')') { traverse(s,count+1,left_erase,right_erase,pair,tmp+s[count],result); } else if(s[count]=='(') { if(left_erase>0) { traverse(s,count+1,left_erase-1,right_erase,pair,tmp,result); } traverse(s,count+1,left_erase,right_erase,pair+1,tmp+s[count],result); } else { if(right_erase>0) { traverse(s,count+1,left_erase,right_erase-1,pair,tmp,result); } if(pair>0) { traverse(s,count+1,left_erase,right_erase,pair-1,tmp+s[count],result); } } }};
0 0
- leetcode 301 : Remove Invalid Parentheses
- [LeetCode] Remove Invalid Parentheses
- LeetCode -- Remove Invalid Parentheses
- leetcode Remove Invalid Parentheses
- LeetCode Remove Invalid Parentheses
- [Leetcode]Remove Invalid Parentheses
- leetcode:Remove Invalid Parentheses
- leetcode - Remove Invalid Parentheses
- 【Leetcode】Remove Invalid Parentheses
- LeetCode:Remove Invalid Parentheses
- Remove Invalid Parentheses -- Leetcode
- [LeetCode]Remove Invalid Parentheses
- leetcode:bfs:Remove Invalid Parentheses(301)
- LeetCode 301 Remove Invalid Parentheses (BFS + 剪枝)
- Leetcode 301. Remove Invalid Parentheses
- leetcode 301. Remove Invalid Parentheses
- [leetcode] 301. Remove Invalid Parentheses
- leetcode.301. Remove Invalid Parentheses
- 学习贪吃蛇JS项目实战笔记3
- 360我要接单登陆-Token解密Java代码
- eclipse中jsp错误javax.servlet.http.HttpServlet" was not found on the Java Build Path
- centos6 不能联网
- <仅是自己做笔记。。。系列-7>输入一颗二元查找树,将该树转换为它的镜像
- leetcode 301 : Remove Invalid Parentheses
- Ubuntu切换到root权限的几种方法
- 惠普测试管理工具ALM使用-发布和周期
- 机器学习之python基础(三)
- R语言中如何读取Excel
- excel自动转换为可印刷版式:目录的自动生成
- 用GDB调试程序(二)
- hdu5318The Goddess Of The Moon 矩阵快速幂
- supervise进程监控工具