zoukankan      html  css  js  c++  java
  • 20. 有效的括号

    20. 有效的括号

    题目:https://leetcode-cn.com/problems/valid-parentheses/description/

    package com.test;
    
    import java.util.HashMap;
    import java.util.Map;
    import java.util.Stack;
    
    public class Lesson020 {
        public static void main(String[] args) {
            String input = "{()[]}";
            boolean res = isValid(input);
            System.out.println(res);
        }
    
        private static boolean isValid(String s) {
            Stack<String> stack = new Stack<>();
            // 定义左右括号字符串
            String right = ")}]";
            String left = "({[";
            // 定义左右括号对应关系
            Map<String, String> map = new HashMap<>();
            map.put("(", ")");
            map.put("{", "}");
            map.put("[", "]");
            if("".equals(s)){
                return true;
            }
            for (int i = 0; i < s.length(); i++) {
                String substring = s.substring(i, i + 1);
                // 如果是左括号就放到堆栈中
                if (left.indexOf(substring) > -1) {
                    stack.push(substring);
                }
                // 如果是右括号就与堆栈中的字符串进行对比
                if (right.indexOf(substring) > -1) {
                    // 堆栈里面没有内容了就返回false
                    if (stack.empty()) {
                        return false;
                    }
                    String pop = stack.pop();
                    // 字符串不一致就返回false
                    if(!substring.equals(map.get(pop))){
                        return false;
                    }
                }
            }
            // 全部循环完毕,堆栈里面还有内容就是false
            return stack.empty();
        }
    }

     下图较简洁:

  • 相关阅读:
    一个好用的web甘特图
    应用ExcelPackage导出Excel
    Base64中文不能加密问题
    Sql Server存储过程和函数浅谈
    .NET反编译之Reflector基础示例
    NPOI导出数据到Excel
    twitter接口开发
    Nginx基本属性配置详解
    ssh-keygen创建证书
    asp.net core 设置默认文档index.html
  • 原文地址:https://www.cnblogs.com/stono/p/9475505.html
Copyright © 2011-2022 走看看