import java.util.Scanner;
import java.util.Stack;

public class BracketMatch {

public static void main(String[] args){

//从键盘输入

Scanner in = new Scanner(System.in);
Stack<Character> stack = new Stack<Character>();
while(in.hasNext()){

String string = in.next();

//输入奇数个括号,返回无效invalid

if(string.length()%2 != 0){
System.out.println("invalid");
}else{
for(int i = 0;i<string.length();i++){
if(stack.isEmpty()){
stack.push(string.charAt(i));
}else if(stack.peek()=='(' && string.charAt(i)==')' || stack.peek()=='[' && string.charAt(i)==']' || stack.peek()=='{' && string.charAt(i)=='}'){
stack.pop();
}else{
stack.push(string.charAt(i));
}

}

//循环结束,如果栈为空,则括号匹配返回有效valid

if(stack.isEmpty()){
System.out.println("valid");
}else{
System.out.println("invalid");
}
}

}
}
}

明略数据 Java 括号匹配相关推荐

  1. java 括号匹配_java---括号匹配

    import java.util.HashMap; import java.util.LinkedList; import java.util.Map; /* *括号匹配 * 1.用栈实现,如果读取字 ...

  2. 括号匹配+Java栈

    括号匹配 import java.util.LinkedList;class MyStack{private int num;private LinkedList<Character>da ...

  3. 数据结构括号匹配代码_数据结构中的栈,你知道多少?

    由于栈比较简单,也很容易理解,学过的人都知道一句话就可以描述栈的特性:后进先出.所以这篇文章主要是写如何使用代码来描述栈,当然也是让大家很容易理解的语言.还是先给出这篇文章的大致脉络. 首先,对栈有一 ...

  4. JAVA栈应用之括号匹配

    JAVA栈应用之括号匹配 在数据处理中,常常要判断数据中的括号,应用栈来处理及其方便. 当用户输入一个字符串时,遇到左括号时,将其入栈,如'(' '["'{,而遇到右括号时,如')" ...

  5. 括号匹配不一定用栈哦(洛谷P1739题题解,Java语言描述)

    说明 有点标题党,严格地说,括号匹配用栈做比较规范. 问题是下面这题有点水啊,简便点大家都开心~~ 题目要求 P1739题目链接 分析 题目太水,所以说我们可以认为什么各种异常不会出现. 只需要--简 ...

  6. java正则匹配括号_java正则表达式方括号匹配的认识

    在java正则表达式的学习中,方括号匹配是一个重点,在这里为了让学员们对方括号匹配这个知识点有更深刻的认识和了解,广州达内的老师将为你进行一次深刻的讲解. 在正则表达式中,[]是对指定的元素进行匹配, ...

  7. 快速解决工作中遇到经典的括号匹配问题

    问题来源:从缓存中取出的数据没有空格和换行,很难阅读,但又找不到像JSON一样的在线格式化工具.灵机一动,自己写了一个小程序将其格式化. 一.先看效果 1.原始数据长这样,难以阅读 MemCached ...

  8. 判断括号匹配的程序java_java判断左右括号匹配

    java判断左右括号匹配 [2021-02-10 16:36:55]  简介: Java进行正则表达式匹配的方法:首先打开eclipse软件:然后运用d来进行数字的匹配,如果字符串中遇到了空白字符的话 ...

  9. 栈 -- 顺序栈、链式栈的实现 及其应用(函数栈,表达式求值,括号匹配)

    文章目录 实现 顺序栈实现 链式栈实现 应用 函数栈 的应用 表达式求值中 的应用 括号匹配中 的应用 我们使用浏览器的时候经常会用到前进.后退功能. 依次访问完一串页面 a – b – c之后点击后 ...

最新文章

  1. 联机事务处理OLTP(on-line transaction processing)和联机分析处理OLAP(On-Line Analytical Processing)...
  2. Android MIPI转LVDS显示屏调试之--- SD65DSI84概述(2)
  3. [体感游戏]关于体感游戏的一些思考(三) --- 射击
  4. 4e4 Coursework decomposition
  5. rodbc 连接oracle,R語言 使用RODBC連接oracle數據庫
  6. 在北上广,年薪不到40W意味着什么?
  7. 排序算法(四)--谢尔排序(缩小增量排序)
  8. 如何识别一个字符串是否Json格式
  9. pivot position_PIVOT用法详解
  10. 大写日期转换器(大写日期转换器)
  11. yyuc php,yyuc框架介绍
  12. t450加固态硬盘教程_Thinkpad T450 超级笔记本 开箱更换SSD和内存
  13. pc模式 华为mate30_华为Mate30手机怎么投屏到电脑上呢
  14. matlab 判断 正态分布,用MATLAB判断一组数据是否符合正态分布
  15. int,int*,(int*)区别
  16. .Net Core- Polly 的使用实践
  17. 本地局域网内添加DNS解析的方法
  18. MySQL中varchar与char的区别以及varchar(50)中的50代表的涵义?
  19. QDateTime 转QString格式
  20. TIM微秒级计时学习笔记

热门文章

  1. k8s--Volum存储方式
  2. 51CTO-MySQL数据库高级工程师-微职位
  3. Win10输入法不能用切换不了
  4. 关于3an推客推广模式
  5. link2sd在部分Android 4.2.2系统下挂载告警必须快速重启才能挂载的问题
  6. 《数据库原理》实验报告
  7. Kotlin基础学习(1)
  8. 8.2 优化 SQL 语句
  9. 路由协议 --- IS-IS协议
  10. 252T网盘资源包括: