zoukankan      html  css  js  c++  java
  • java 括号匹配 成对

    import java.util.Stack;
    
    public class Solution {
    
        public static void main(String[] args) {
            
            Solution s = new Solution();
            
            System.out.println(s.isValid("[]{"));
            
        }
        
        
        
        public boolean isValid(String s) {
    
            //栈的特性:先进后出(后进先出 LIFO Last In First Out) 压栈 弹栈 
            Stack<Character> stack = new Stack<>();
    
            for (int i = 0; i < s.length(); i++) {
    
                char c = s.charAt(i);
                if (c == '(' || c == '[' || c == '{') {
                    stack.push(c);
                } else {
                    if (stack.isEmpty())
                        return false;
    
                    char topChar = stack.pop();
                    //如果c 源值是 ( 且目标值不是反向C 表示两者并不是对立关系  返回false  匹配完必须是空
                    if (c == ')' && topChar != '(') {
                        return false;
                    }
    
                    if (c == ']' && topChar != '[') {
                        return false;
                    }
    
                    if (c == '}' && topChar != '{') {
                        return false;
                    }
                }
            }
            return stack.isEmpty();
        }
    }
  • 相关阅读:
    javascript 延迟
    ashx获取另一个页面的返回内容
    Handler实现数据模板
    font-face 在 Firefox无法正常工作问题
    离线缓存 manifest
    事件 event
    源码学习
    调试
    Icon font font face
    aria-label
  • 原文地址:https://www.cnblogs.com/1-Admin/p/10727041.html
Copyright © 2011-2022 走看看