java算法(1)
来源:互联网 发布:sql语句给字段起别名 编辑:程序博客网 时间:2024/06/10 01:03
原题:
// 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())()"]// ")(" -> [""]
答案:
public class Solution { public List<String> removeInvalidParentheses(String s) { List<String> result = new ArrayList<>(); remove(s, result, 0, 0, new char[]{'(', ')'}); return result; } public void remove(String s, List<String> result, 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()), result, i, j, par); return; } String reversed = new StringBuilder(s).reverse().toString(); if (par[0] == '(') // finished left to right remove(reversed, result, 0, 0, new char[]{')', '('}); else // finished right to left result.add(reversed); }}
阅读全文
0 0
- java 经典算法1
- java经典算法1
- java小算法(1)
- java-递归算法1
- 算法-java(1)
- Java-排序算法1
- 算法--java(1)
- java算法(1)
- Java算法中的 >>>1
- java 排序算法(1)
- java算法面试题-----1
- 算法上机1(java)
- Java排序算法(1)
- java(算法1)二分法
- java数据结构与算法1
- java算法题总结1
- java算法1 冒泡排序
- Java与算法(1)
- webview与js交互
- spring-注解
- PAT 甲级 1115. Counting Nodes in a BST (30)
- PAT 甲级 1116. Come on! Let's C (20)
- java学习第31天,calendar转换
- java算法(1)
- 主从复制原理
- apply,call,bind的区别
- ReactNative基础(三)了解ScrollView并打造一个Banner效果
- java算法(2)
- 文章标题
- Rgb转换三原色
- 《程序员修炼之道—从小工到专家》注重实效的哲学
- 【网站建设】关于服务器跪掉了