括号匹配算法Java实现
描述:
给定一个字符串,其中的字符只包含三种括号:花括号{ }、中括号[ ]、圆括号( ),即它仅由 “( ) [ ] { }” 这六个字符组成。设计算法,判断该字符串是否有效,即字符串中括号是否匹配。括号匹配要求括号必须以正确的顺序配对,如 “{ [ ] ( ) }” 或 “[ ( { } [ ] ) ]” 等为正确的格式,而 “[ ( ] )” 或 “{ [ ( ) }” 或 “( { } ] )” 均为不正确的格式。
思路:
数据结构选用栈,读到左括号时入栈,读到右括号时判断是否匹配,匹配则左括号出栈,最后判断栈为空说明匹配,不为空不匹配。
代码:
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实现相关推荐
- 括号匹配算法 java_使用栈实现括号匹配算法-java
题目:检验符号是否匹配. '['和']', '('和')'成对出现时字符串合法. 例如"[][]()", "[[([]([])()[])]]"是合法的; &qu ...
- 括号匹配算法 java_括号匹配算法
括号匹配算法 题目来自网络搜集和常考算法,如有侵权请联系我 题目描述 给出一个仅包含字符'(',')','{','}','['和']',的字符串,判断给出的字符串是否是合法的括号序列 括号必须以正确的 ...
- 括号匹配编码c语言,用c语言实现括号匹配算法
/*括号匹配算法*/ #include #define FALSE 0 #define TRUE 1 #define MAXSIZE 100 typedef char DataType; //定义栈 ...
- HTML括号匹配算法
题目 题目内容: 实现扩展括号匹配算法,用来检查HTML文档的标记是否匹配. HTML标记应该成对.嵌套出现, 开标记是这种形式,闭标记是这种形式. 输入格式: 共1行,为一个字符串,即一个HTML文 ...
- ACM试题 - 括号配对问题 - Java中字符串截取和定位问题
ACM试题题源(括号配对问题):http://acm.nyist.net/JudgeOnline/problem.php?pid=2 提交代码: import java.util.Scanner;pu ...
- 括号匹配+Java栈
括号匹配 import java.util.LinkedList;class MyStack{private int num;private LinkedList<Character>da ...
- java编程括号匹配,Java正则表达式括号内容匹配
Java正则表达式括号内容匹配 工作中碰到的一些问题与解决方法记录下来以备不时之需 商品品名规定英文括号正则表达式拆分规则 .*? :所有内容 [1-9] :整数数字1到9 \d :0到9 \d* : ...
- 通配符(?,*)匹配算法Java
动态规划 package com.patience.interview.huawei;import java.util.Scanner;/*** 通配符匹配算法* @author Green.Gee* ...
- python括号配对问题_使用Python的栈实现括号匹配算法
写一个栈的类:stack.py class Stack: def __init__(self): self.items = [] def is_Empty(self): return self.ite ...
- python括号匹配算法_使用Python的栈实现括号匹配算法
利用Python列表实现一个栈的结构,再使用栈实现括号匹配的算法,所谓的括号匹配是指在编程语言中,括号是成对出现的,最先出现的左括号,对应于最后的右括号,后出现的左括号对应于最新右括号,符合栈的特征 ...
最新文章
- vivado与modelsim的联合仿真(二)
- 深入浅析Python 函数注解与匿名函数
- 猛增 110K Star!年增长数最多的 10 大顶级前端学习资源项目!
- 算术运算符、数学函数Math、数据类型转换、自增自减运算符、关系逻辑运算符、位运算符、括号及运算符级别
- 带有Spring Security的OAuth 2.0快速指南
- oracle导出表中某天数据命令,Oracle数据库使用命令行导入导出数据表及数据内容(本地、远程)...
- 双11特刊|一站式在线数据管理平台DMS技术再升级,高效护航双11
- 飞鸽推广的超级商务微博的栏目介绍(二)
- 容器编排技术 -- Kubernetes kubectl rollout status 命令详解
- jeecms升级shiro漏洞报错处理
- python安装jupyterlab_JupyterLab的安装及使用
- Opmanager研究笔记
- 计算机调用打印机打印流程图,Windows打印体系结构之本地打印任务处理流程①...
- db2数据库常见问题处理
- 程序媛字节裸辞后,都干了些什么....
- linux centos数据备份,centOS系统的备份与还原
- BP神经网络推导(两个隐藏层)
- 小月域名防红程序 V2.0最新版本
- java hypot_java – 为什么hypot()函数这么慢?
- 18岁、20岁、23岁、25岁、28岁、30岁