Leetcode214: Remove Invalid Parentheses
来源:互联网 发布:知乎付费方式 编辑:程序博客网 时间:2024/06/14 21:39
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())()"]")(" -> [""]
class Solution {public: void search(string& s, unordered_set<string>& res_set, string& temp, int curr, int open, int s_sz, int& max_valid_len, bool left_deleted){ // dfs if(s_sz-curr<open) return; if(curr == s_sz){ if(temp.length()>=max_valid_len && res_set.find(temp) == res_set.end()){ max_valid_len = temp.length(); res_set.insert(temp); } return; } if(s[curr] != '(' && s[curr] != ')'){ temp += s[curr]; search(s, res_set, temp, curr+1, open, s_sz, max_valid_len, left_deleted); temp.pop_back(); return; } if(s[curr] == '('){ temp += "("; search(s, res_set, temp, curr+1, open+1, s_sz, max_valid_len, left_deleted); temp.pop_back(); search(s, res_set, temp, curr+1, open, s_sz, max_valid_len, true); } else{ if(!(s[curr] == ')' && open==0)){ temp += ')'; search(s, res_set, temp, curr+1, open-1, s_sz, max_valid_len, left_deleted); temp.pop_back(); } if(!left_deleted){ search(s, res_set, temp, curr+1, open, s_sz, max_valid_len, left_deleted); } } } vector<string> removeInvalidParentheses(string s) { vector<string> res; int sz = s.length(); unordered_set<string> res_set; string temp = ""; int max_valid_len = 0; search(s, res_set, temp, 0, 0, sz, max_valid_len, false); for(string a:res_set) res.push_back(a); return res; }};
有待思考。。。。。。
0 0
- Leetcode214: Remove Invalid Parentheses
- [LeetCode] Remove Invalid Parentheses
- LeetCode -- Remove Invalid Parentheses
- Remove Invalid Parentheses--Nice
- Remove Invalid Parentheses
- leetcode Remove Invalid Parentheses
- LeetCode Remove Invalid Parentheses
- [Leetcode]Remove Invalid Parentheses
- 301. Remove Invalid Parentheses
- leetcode:Remove Invalid Parentheses
- leetcode - Remove Invalid Parentheses
- Remove Invalid Parentheses
- 【Leetcode】Remove Invalid Parentheses
- LeetCode:Remove Invalid Parentheses
- Remove Invalid Parentheses
- Remove Invalid Parentheses
- 301. Remove Invalid Parentheses
- Remove Invalid Parentheses
- 根据顶点的投影坐标,获取对应的屏幕纹理的纹理坐标
- KMP算法
- js计算一个时间加上n天后得到的时间
- Swift 实现单例模式Singleton pattern的三种方法
- 【总结】C#中的数组
- Leetcode214: Remove Invalid Parentheses
- iOS: 在UIViewController 中添加Static UITableView
- git的学习和使用
- 更改eclipse的编辑器样式风格
- codeforces 611C New Year and Domino (DP)
- UILabel+UIImageView(动画)
- 围观M$的new
- 【HDU4001】To Miss Our Children Time(LIS变形)
- 关于国外硕博士论文搜索和下载的讨论