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

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

/*     * 301. Remove Invalid Parentheses     * 2016-7-3 by Mingyang     *https://discuss.leetcode.com/topic/34875/easy-short-concise-and-fast-java-dfs-3-ms-solution     */    public List
removeInvalidParentheses(String s) { List
ans = new ArrayList<>(); remove(s, ans, 0, 0, new char[]{'(', ')'}); return ans; } public void remove(String s, List
ans, int last_i, int last_j, char[] par) { for (int stack = 0, i = last_i; i < s.length(); ++i) { if (s.charAt(i) == par[0]) stack++; if (s.charAt(i) == par[1]) stack--; if (stack >= 0) continue; for (int j = last_j; j <= i; ++j) if (s.charAt(j) == par[1] && (j == last_j || s.charAt(j - 1) != par[1])) remove(s.substring(0, j) + s.substring(j + 1, s.length()), ans, i, j, par); return; } String reversed = new StringBuilder(s).reverse().toString(); if (par[0] == '(') // finished left to right remove(reversed, ans, 0, 0, new char[]{')', '('}); else // finished right to left ans.add(reversed); }

 

转载于:https://www.cnblogs.com/zmyvszk/p/5639332.html

你可能感兴趣的文章
Entityframework:“System.Data.Entity.Internal.AppConfig”的类型初始值设定项引发异常。...
查看>>
Linux中防火墙centos
查看>>
mysql新建用户,用户授权,删除用户,修改密码
查看>>
FancyCoverFlow
查看>>
JS博客
查看>>
如何设置映射网络驱动器的具体步骤和方法
查看>>
ASP.NET WebApi 基于OAuth2.0实现Token签名认证
查看>>
283. Move Zeroes把零放在最后面
查看>>
Visual Studio Code 打开.py代码报Linter pylint is not installed解决办法
查看>>
Python 数据类型
查看>>
17.树的子结构
查看>>
D - Mike and strings
查看>>
c#基础学习(0806)之抽象类实现多态
查看>>
S5PV210根文件系统的制作(一)
查看>>
51NOD 1244 莫比乌斯函数之和
查看>>
[bzoj1923]外星千足虫[高斯消元]
查看>>
centos下同时启动多个tomcat
查看>>
slab分配器
查看>>
数据清洗
查看>>
【读书笔记】C#高级编程 第三章 对象和类型
查看>>