括号校验-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;//栈为空则校验成功,不为空则括号不匹配
    }

相关推荐:

Python怎么验证下载的包是否被篡改_使用Hash校验与签名验证

直接pipinstall不足以保证包安全,因PyPI不强制签名且传输/缓存可能被污染;可靠验证需依赖发布者提供的哈希或GPG签名,wheel包仅支持--hash校验,源码包才可能用.asc签名验证。 为什么直接pipinstall不足以保证包安全 PyPI上的包默认只做基础上传校验,不强制签名;即使...

Python爬虫如何过滤无效链接_使用正则表达式校验URL格式

urllib.parse.urlparse比正则更可靠,因其严格遵循RFC3986解析URL结构,能正确处理localhost、IDN域名、中文路径等复杂情况,而正则易漏判或误杀且难以覆盖所有合法格式。 为什么urllib.parse.urlparse比正则更可靠? 直接用正则校验URL格式容易漏判...