package stack; import java.util.Stack; /** * Created by Lanxiaowei * Craated on 2016/12/11 14:13 * 检测括号是否成对出现 * 可以将检测到左括号抽象成入栈操作,检测到右括号抽象成出栈操作, * 左右括号成对出现刚好可以抽象成入栈出栈操作,也就是说只要最后 * 栈为空,则表明括号是全部成对出现的. */ public class Test3 { public static void main(String[] args) { String str = "())((()()()"; //String str = "(()()()(())())"; boolean result = judge(str); System.out.println(result); } public static boolean judge(String str) { Stack<Character> stack = new Stack<Character>(); for (int i = 0; i < str.length(); i++) { //如果是左括号,则执行加1操作 if (str.charAt(i) == '(') { stack.push('('); } else if (str.charAt(i) == ')') { //如果栈为空,则表明右括号的个数比左括号多,即括号不是成对出现的,此时直接return false. if(stack.isEmpty()) { return false; } stack.pop(); } else { throw new IllegalArgumentException("Invalid char:" + str.charAt(i)); } } //如果最终栈为空,则表明括号是成对出现的. return stack.empty(); } }
相关推荐
顺序栈实现括号配对
用栈实现括号匹配的检测,链式栈实现 ()[]的检测可以实现
设计一个算法采用顺序栈判断表达式中的括号是否正确配对。
利用栈实现括号匹配的检验,存储括号字符的数组通过malloc实现动态分配长度,匹配函数的第一个参数为指向字符的指针(即为存储括号字符的数组的首地址)和一个整数(即为括号字符的总数,为括号个数的2倍),将左...
1. 用顺序栈或链栈(自己选择)来检测括号是否匹配。 2. 令所给的式子中出现()[ ]{ }这几种括号形式。 3. 所给的参考代码是用C实现的,要求(1)用C++实现;(2)改进教材P95程序3.7,可以判断所给的式子出现()[ ]...
用顺序栈的方法实现括号匹配的检查,例如输入( enter【enter{enter}enter】enter)enter,程序就会输出Match(匹配),注enter是回车。
表达式中可能出现花括号{}、方括号[]、园括号(),从键盘输入一个表达式,检查左右括号配对情况,并输出结果。 例子:{[(…)(…)]…(…)}配对 而{[(…)(…)]…[(]…)}不配对 二、实验目的 掌握栈的存储与操作。 三、...
2、假设一个算术表达式中可以包含三种括号:园...编写判别给定表达式中所含括号是否正确配对出现的算法(已知表达式已存入数据元素为字符的顺序表中)。要求:顺序栈存储;实现顺序栈的基本操作;调用基本操作完成。
设计算法: 检查存储在单链表中的算术表达式 s 所包含的括号—— “(” 与 “)” 、 “[” 与 “]” 、 “{” 与 “}”是否正确匹配; 1、 创建单链表 s,通过用户逐个字符输入,完成 s 的初始化。 2、 编写程序实现...
输入一包含(和)的字符串,检测括号是否匹配(其中括号能嵌套括号),并输出括号是否匹配的信息(匹配,缺少左括号,缺少右括号)。
设计一个算法判别一个算术表达式的圆括号是否正确配对
利用栈所进行的括号匹配,简单的关于栈的利用的题目
栈(Stack)在计算机领域是一个被广泛应用的集合,栈是线性集合,访问都严格地限制在一段,叫做顶(top)。这篇文章主要介绍了使用Python实现一个栈判断括号是否平衡,需要的朋友可以参考下
首先检查栈是否空? 若栈空,则表明该“右括号”多余 否则和栈顶元素比较? 若相匹配,则栈顶“左括号出栈” 否则表明不匹配 (3)表达式检验结束时, 若栈空,则表明表达式中匹配正确 否则表明“左...
本程序使用数据结构循环队列的方法判断括号是否匹配!
关于一个括号匹配的练习题,通过对文件的读入,判断此文件内容是否符合{[()]}……对学数据结构有一定的好处。
假设一个算术表达式中可包含三种括号:圆括号,方括号和花括号且这三种括号可按任意次序嵌套使用。试利用栈的运算,编写判别给定表达式中所含括号是否正确配对出现的(可也直接运行,而且简单易懂)
Java 栈Stack源码实现 stack检测括号匹配算法 java源码
在c语言下,利用栈的结构,判断一个表达式的括号是否合法