zoukankan      html  css  js  c++  java
  • java 实例 判断输出的括号是否成对出现

    输入:

    {}()
    ({()})
    {}(
    []

    输出:

    true
    true
    false
    true

    代码:

    import java.util.Scanner;
    import java.util.Stack;
    import java.util.HashMap;
    
    class Solution {
        
        public static void main(String[] args) {
            /* Create HashMap to match opening & closing brackets */
            HashMap<Character, Character> map = new HashMap<>();
            map.put('(', ')');
            map.put('[', ']');
            map.put('{', '}');
            
            /* Test each expression for validity */
            Scanner scan = new Scanner(System.in);
            while (scan.hasNext()) {
                String expression = scan.next();
                System.out.println(isBalanced(expression, map) ? "true" : "false" );
            }
            scan.close();
        }
        
        public static boolean isBalanced(String expression, HashMap<Character, Character> map) {
            /* Odd length strings are not balanced */
            if ((expression.length() % 2) != 0) {
                return false;
            }
            
            Stack<Character> stack = new Stack<>();
            for (int i = 0; i < expression.length(); i++) {
                Character ch = expression.charAt(i);
                if (map.containsKey(ch)) {
                    stack.push(ch);
                } else if (stack.isEmpty() || ch != map.get(stack.pop())) {
                    return false;
                }
            }
            return stack.isEmpty();
        }
    }
  • 相关阅读:
    网络爬虫之第一章网络请求
    rabbitmq学习(一) —— 安装篇
    jenkins自动构建部署
    httpclient初步封装
    谈谈“拥抱变化”
    mongo对分组数据进行排序
    困兽
    go语言——goland中项目目录及编译说明
    最长回文子串
    java中关于锁知识的整理
  • 原文地址:https://www.cnblogs.com/Angella/p/6561640.html
Copyright © 2011-2022 走看看