zoukankan      html  css  js  c++  java
  • 20. Valid Parentheses(stack)

    Given a string containing just the characters '('')''{''}''[' and ']', determine if the input string is valid.

    The brackets must close in the correct order, "()" and "()[]{}" are all valid but "(]" and "([)]" are not.

     public class Solution {

    if (s == null)
    			return false;
    		Stack<Character> stack = new Stack<Character>();
    		char[] ch = s.toCharArray();
    		for (int i = 0; i < ch.length; i++) {
    			if ((ch[i] == '(') || (ch[i] == '[') || (ch[i] == '{'))
    				stack.push(ch[i]);
    			else {
    				if (stack.isEmpty())
    					return false;
    				if (ch[i] - stack.pop() > 2)
    					return false;
    			}
    		}
    		return stack.isEmpty();
    

      

        public boolean isValid(String s) {
            if (s == null)                       //改进1:可以不用String.charat(i)
    return false; //改进2: 先判断长度
    //改进三: 不需要这么多if else ,符号的判断可以用ascii码 Stack<Character> stack = new Stack<Character>(); char[] ch = s.toCharArray(); for (int i = 0; i < ch.length; i++) { if ((ch[i] == '(') || (ch[i] == '[') || (ch[i] == '{')) stack.push(ch[i]); else { if (ch[i] == ')') { if (stack.isEmpty()) return false; else if (stack.pop() != '(') return false; } if (ch[i] == ']') { if (stack.isEmpty()) return false; if (stack.pop() != '[') return false; } if (ch[i] == '}') { if (stack.isEmpty()) return false; if (stack.pop() != '{') return false; } } } if (!stack.isEmpty()) return false; else return true; } }

      

  • 相关阅读:
    非递归的中序遍历(inorder)树 leetcode 94
    基于二叉树的抢劫问题 leetcode337
    查询二叉树的公共父结点 leetcode 236
    链表的无锁操作 (JAVA)
    kexec 内核快速启动流程分析
    最近几天严重营养不良。。。
    Better Me
    《大四上寒假总结》--3.10
    《计算机网络》学习总结
    记录
  • 原文地址:https://www.cnblogs.com/kydnn/p/5162915.html
Copyright © 2011-2022 走看看