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();
    }
}
时间: 2024-10-16 07:03:37

java 实例 判断输出的括号是否成对出现的相关文章

Java实例——判断某一年是否为闰年

技术关键: 满足两种条件的整数可以成为闰年: 1.非整百年份能被4整除: 2.整百年份能被400整除. Java语法: year % 4 == 0 && year % 100 != 0 || year % 400 == 0 实现过程: 1 package test; 2 import java.util.Scanner; 3 public class LeapYear { 4 public static void main(String[] args) { 5 // TODO Auto-g

JS判断字符串小括号是否成对合法

一.思路 要判断()是否成对: 运用栈的"后进先出" 的特点,定义一个空数组,作为栈: for循环遍历字符串,当遇到"("的时候就把"("添加到空数组最顶端,push方法,记录发现一个左括号: 当遇到")"就把数组中最顶端的元素弹出来,pop方法,抵消一个左括号.注意如果此时数组是空的,但是遇到")"说明没有"("缺少成对的")",则返回false: 不是括号的字符就

Java - 35 Java 实例

Java 实例 本章节我们将为大家介绍 Java 常用的实例,通过实例学习我们可以更快的掌握 Java 的应用. Java 环境设置实例 Java 实例 – 如何编译一个Java 文件? Java 实例 – Java 如何运行一个编译过的类文件? Java 实例 - 如何执行指定class文件目录(classpath)? Java 实例 – 如何查看当前 Java 运行的版本? Java 字符串 Java 实例 – 字符串比较 Java 实例 - 查找字符串最后一次出现的位置 Java 实例 -

判断字符串中的括号是否成对出现

基本思路:可用栈来解决:遍历字符串,如果遇到左括号,则将左括号入栈,如果遇到右括号,则判断栈顶的元素是否为左括号,如果为左括号则弹出栈顶元素,然后继续字符串遍历,遍历结束后,如果栈为空,则认为括号是成对出现. 下面贴上实现代码: 1 #include <iostream> 2 #include <stack> 3 using namespace std; 4 5 int _tmain(int argc, _TCHAR* argv[]) 6 { 7 string sss = &quo

Protocol Buffer技术详解(Java实例)

Protocol Buffer技术详解(Java实例) 该篇Blog和上一篇(C++实例)基本相同,只是面向于我们团队中的Java工程师,毕竟我们项目的前端部分是基于Android开发的,而且我们研发团队中目前主要使用的开发语言就是C++.Java和Python,其中Python主要用于编写各种工具程序.然而为了保证该篇Blog的完整性和独立性,我仍然会将上一篇Blog中已经出现的内容再一次赘述,同时对于Java中特有的部分也会着重介绍.          一.生成目标语言代码.      下面

Java实例变量初始化

由一道面试题所想到的--Java实例变量初始化 时间:2015-10-07 16:08:38      阅读:23      评论:0      收藏:0      [点我收藏+] 该题目源自微信公众号(程序员的那些事)的推送:携程 Java 工程师的一道面向对象面试题 题目是这样的:求下面程序的输出: public class Base { private String baseName = "base"; public Base() { callName(); } public v

Java基础——输入/输出(一)

概述 Java的IO通过java.io包下是类和接口来支持,在java.io包下主要包括输入,输出两种IO流,每种输入.输出流又可分为字节流和字符流两大类.其中字节流以字节为单位来处理输入.输出操作,而字符流以字符来处理来处理输入.输出操作. 一.File类 File类可以使用文件路径字符串来创建File实例,该文件字符串可以是绝对路径,也可以是相对路径.在默认情况下,系统总是依据用户的工作路径来解释相对路径,这个路径由系统属性“userdir”指定. 一旦创建了File对象后,就可以调用Fil

微信公众平台接入Java实例,结合BAE

关于注册公众账号这块不详细介绍 注册完成,审核认证完,就可以开始玩了 1.如何成为开发者? 需要填写接口配置信息,需要自己的服务器资源,一般自己没有服务器,所以可以采用云服务器,例如BAE,SAE,阿里云服务器.这里用BAE 2.打开百度开放云平台官网,注册,登陆,点击开发者服务管理 2.1.点击"创建工程" 填写工程相关信息,应用名称自定义,类型选择java-tomcat,域名唯一,代码管理工具选择svn     到这里,bae应用创建完了. 3.现在来实现TOKEN验证的代码部分

在Java中判断数组中包含某个元素的几种方式的比较

闲来无事,将java中判断数组中包含某个元素的几种方式的速度进行对比,直接上代码 talk is cheap, show you the code package test.contain.lishaojie; import java.util.Arrays;import java.util.HashSet;import java.util.Set; public class TestContain { /** * @param args */ public static void main(S