描述:
给定一个字符串,其中的字符只包含三种括号:花括号{ }、中括号[ ]、圆括号( ),即它仅由 “( ) [ ] { }” 这六个字符组成。设计算法,判断该字符串是否有效,即字符串中括号是否匹配。括号匹配要求括号必须以正确的顺序配对,如 “{ [ ] ( ) }” 或 “[ ( { } [ ] ) ]” 等为正确的格式,而 “[ ( ] )” 或 “{ [ ( ) }” 或 “( { } ] )” 均为不正确的格式。
思路:
数据结构选用栈,读到左括号时入栈,读到右括号时判断是否匹配,匹配则左括号出栈,最后判断栈为空说明匹配,不为空不匹配。
代码:

public class isMatch {public static void main(String[] args) {String string ="([a+b]-(rr{}))";boolean res =  match(string);System.out.println(res);}public static boolean match(String str) {Map<Character,Character> map = new HashMap<>();map.put(')', '(');map.put(']', '[');map.put('}', '{');Stack<Character> stack =new Stack<>();for(int i=0;i<str.length();i++) {Character c =str.charAt(i);if(map.containsValue(c)) {//左括号入栈stack.push(c);}else if(map.containsKey(c)) {//右括号出栈匹配if(stack.empty()) {return false;}if(stack.peek()==map.get(c)) {stack.pop();}else {return false;}}}return stack.empty()?true:false;}
}

括号匹配算法Java实现相关推荐

  1. 括号匹配算法 java_使用栈实现括号匹配算法-java

    题目:检验符号是否匹配. '['和']', '('和')'成对出现时字符串合法. 例如"[][]()", "[[([]([])()[])]]"是合法的; &qu ...

  2. 括号匹配算法 java_括号匹配算法

    括号匹配算法 题目来自网络搜集和常考算法,如有侵权请联系我 题目描述 给出一个仅包含字符'(',')','{','}','['和']',的字符串,判断给出的字符串是否是合法的括号序列 括号必须以正确的 ...

  3. 括号匹配编码c语言,用c语言实现括号匹配算法

    /*括号匹配算法*/ #include #define FALSE 0 #define TRUE 1 #define MAXSIZE 100 typedef char DataType; //定义栈 ...

  4. HTML括号匹配算法

    题目 题目内容: 实现扩展括号匹配算法,用来检查HTML文档的标记是否匹配. HTML标记应该成对.嵌套出现, 开标记是这种形式,闭标记是这种形式. 输入格式: 共1行,为一个字符串,即一个HTML文 ...

  5. ACM试题 - 括号配对问题 - Java中字符串截取和定位问题

    ACM试题题源(括号配对问题):http://acm.nyist.net/JudgeOnline/problem.php?pid=2 提交代码: import java.util.Scanner;pu ...

  6. 括号匹配+Java栈

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

  7. java编程括号匹配,Java正则表达式括号内容匹配

    Java正则表达式括号内容匹配 工作中碰到的一些问题与解决方法记录下来以备不时之需 商品品名规定英文括号正则表达式拆分规则 .*? :所有内容 [1-9] :整数数字1到9 \d :0到9 \d* : ...

  8. 通配符(?,*)匹配算法Java

    动态规划 package com.patience.interview.huawei;import java.util.Scanner;/*** 通配符匹配算法* @author Green.Gee* ...

  9. python括号配对问题_使用Python的栈实现括号匹配算法

    写一个栈的类:stack.py class Stack: def __init__(self): self.items = [] def is_Empty(self): return self.ite ...

  10. python括号匹配算法_使用Python的栈实现括号匹配算法

    利用Python列表实现一个栈的结构,再使用栈实现括号匹配的算法,所谓的括号匹配是指在编程语言中,括号是成对出现的,最先出现的左括号,对应于最后的右括号,后出现的左括号对应于最新右括号,符合栈的特征 ...

最新文章

  1. vivado与modelsim的联合仿真(二)
  2. 深入浅析Python 函数注解与匿名函数
  3. 猛增 110K Star!年增长数最多的 10 大顶级前端学习资源项目!
  4. 算术运算符、数学函数Math、数据类型转换、自增自减运算符、关系逻辑运算符、位运算符、括号及运算符级别
  5. 带有Spring Security的OAuth 2.0快速指南
  6. oracle导出表中某天数据命令,Oracle数据库使用命令行导入导出数据表及数据内容(本地、远程)...
  7. 双11特刊|一站式在线数据管理平台DMS技术再升级,高效护航双11
  8. 飞鸽推广的超级商务微博的栏目介绍(二)
  9. 容器编排技术 -- Kubernetes kubectl rollout status 命令详解
  10. jeecms升级shiro漏洞报错处理
  11. python安装jupyterlab_JupyterLab的安装及使用
  12. Opmanager研究笔记
  13. 计算机调用打印机打印流程图,Windows打印体系结构之本地打印任务处理流程①...
  14. db2数据库常见问题处理
  15. 程序媛字节裸辞后,都干了些什么....
  16. linux centos数据备份,centOS系统的备份与还原
  17. BP神经网络推导(两个隐藏层)
  18. 小月域名防红程序 V2.0最新版本
  19. java hypot_java – 为什么hypot()函数这么慢?
  20. 18岁、20岁、23岁、25岁、28岁、30岁

热门文章

  1. EXE文件结构及读取方法
  2. 为研究自动驾驶卡车上路可行性,英政府出资810万英镑
  3. HENXU-SOA的业务规划和建模方法之七——SOA的方法融合
  4. OS X中的bundle
  5. nagios配置之监控端配置
  6. 5.PSR-7: HTTP message interfaces
  7. 50. PHP 页面静态化(3)
  8. 32. JavaScript 调试
  9. [洛谷P4183][USACO18JAN]Cow at Large P
  10. spring 事物管理器