zoukankan      html  css  js  c++  java
  • 括号校验-Java

    //目标:括号匹配的校验
    //思路:使用栈来解决、遇到`([`就`入栈`,遇到`)]`就出栈,遇到其他元素不做处理。处理完后,检查栈的长度,为空表明括号匹配。
        private static boolean checkBra(String str) {
            String[] arr = str.split("");
            if (")".equals(arr[0]) || "]".equals(arr[0])) {
                return false;//字符串长度较长时可加此判断,提高效率
            }
            Stack stack = new Stack();
            for (int i = 0; i < arr.length; i++) {
                switch (arr[i]) {
                    case "(":
                        stack.push(arr[i]);
                        break;
                    case "[":
                        stack.push(arr[i]);
                        break;
                    case ")":
                        if(stack.isEmpty()) stack.push(arr[i]);//多余的括号
                        Object a = "(".equals(stack.peek()) == true ? stack.pop() : stack.push(arr[i]);//不匹配的括号
                        break;
                    case "]":
                        if(stack.isEmpty()) stack.push(arr[i]);//多余的括号
                        Object b = "[".equals(stack.peek()) == true ? stack.pop() : stack.push(arr[i]);//不匹配的括号
                        break;
                    default:
                        break;
                }
            }
            return stack.isEmpty() == true ? true : false;//栈为空则校验成功,不为空则括号不匹配
        }
    
  • 相关阅读:
    网络配置
    mysql和mongodb的区别
    HTTP和HTTPS
    网络架构/结构
    SKU和SPU表的设计
    第三方-FastDFS分布式文件系统
    并发和并行
    多任务-线程、进程、协程的一些见解
    多任务-协程
    多任务-协程之生成器
  • 原文地址:https://www.cnblogs.com/cgy-home/p/15267624.html
Copyright © 2011-2022 走看看