zoukankan      html  css  js  c++  java
  • 【leetcode】20. Valid Parentheses

    检查括号对是否匹配

    这题需要注意:

    1. 栈的空指针
    2. 全局变量stack需要clear
    3. 输入结束时栈长度不为空
    public class Solution {
        private static final Stack<Character> stack = new Stack<Character>();
        
        public boolean isValid(String s) {
            stack.clear();
            for (int i = 0; i < s.length(); ++i) {
                char c = s.charAt(i);
                if (!isLeft(c)) {
                    if (stack.isEmpty()) {
                        return false;
                    }
                    if (!isPair(stack.pop(), c)) {
                        return false;
                    }
                } else {
                    stack.push(c);
                }
            }
            return stack.isEmpty();
        }
        
        private boolean isLeft(char c) {
            return c == '(' || c == '[' || c == '{';
        }
        
        private boolean isPair(char left, char right) {
            if (left == '(') {
                return right == ')';
            } else if (left == '[') {
                return right == ']';
            } else {
                return right == '}';
            }
        }
    }
  • 相关阅读:
    DFS,BFS算法
    浙江理工大学7月月赛
    矩阵快速幂
    数塔
    Bone Collector
    畅通工程
    敌兵布阵
    Tempter of the Bone
    Elevator
    Fibonacci Again
  • 原文地址:https://www.cnblogs.com/lanhj/p/5372713.html
Copyright © 2011-2022 走看看