FB面经 Prepare: Make Parentheses valid
2017-03-16 22:59
344 查看
给一组括号,remove最少的括号使得它valid
从左从右各scan一次
1 package fb; 2 3 public class removeParen { 4 5 public static String fix(String str) { 6 StringBuffer res = new StringBuffer(str); 7 int l = 0, r = 0; 8 int i = 0; 9 while (i < res.length()) { 10 if (res.charAt(i) == '(') l++; 11 else { 12 if (l <= r) { 13 res.deleteCharAt(i); 14 i--; 15 } 16 else { 17 r++; 18 } 19 } 20 i++; 21 } 22 23 l = 0; 24 r = 0; 25 i = res.length()-1; 26 while (i >= 0) { 27 if (res.charAt(i) == ')') r++; 28 else { 29 if (l >= r) { 30 res.deleteCharAt(i); 31 } 32 else { 33 l++; 34 } 35 } 36 i--; 37 } 38 39 return res.toString(); 40 } 41 42 43 /** 44 * @param args 45 */ 46 public static void main(String[] args) { 47 // TODO Auto-generated method stub 48 String res = fix(")((())("); 49 System.out.println(res); 50 } 51 52 }
相关文章推荐
- [Leetcode 20] 20 Valid Parentheses
- Valid Parentheses
- LeetCode Valid Parentheses
- 20. Valid Parentheses
- FB面经 Prepare: All Palindromic Substrings
- LeetCode20 Valid Parentheses的java 题解
- 20. Valid Parentheses
- LeetCode Valid Parentheses
- LeetCode20:Valid Parentheses
- Feb_0219_Leetcode_32_Longest Valid Parentheses
- leetcode[20]:Valid Parentheses
- 【LeetCode-面试算法经典-Java实现】【020-Valid Parentheses(括号验证)】
- LeetCode No.20 Valid Parentheses
- Valid Parentheses(用栈实现括号匹配)
- leetcode微软面试题20.Valid Parentheses
- Valid Parentheses
- 【LeetCode OJ】Valid Parentheses
- Leetcode -- 20. Valid Parentheses
- Valid Parentheses
- Leetcode Valid Parentheses