JAVA蓝桥杯(6)括号问题
2016-01-08 20:49
369 查看
问题描述
下面的代码用于判断一个串中的括号是否匹配所谓匹配是指不同类型的括号必须左右呼应,可以相互包含,但不能交叉例如:
..(..[..]..).. 是允许的
..(...[...)....].... 是禁止的
对于 main 方法中的测试用例,应该输出:
false
true
false
false
解决方法
import java.util.Stack; public class Question5 { public static void main(String[] args) { System.out.println(isGoodBracket("...(..[.)..].{.(..).}...")); System.out.println(isGoodBracket("...(...)...")); System.out.println(isGoodBracket(".....[...].(.).){.(..).}...")); System.out.println(isGoodBracket("...(..[...].(.).){.(..)....")); } private static boolean isGoodBracket(String string) { Stack<Character> stack = new Stack<Character>(); for (int i = 0; i < string.length(); i++) { switch (string.charAt(i)) { case '{': stack.push('{'); break; case '[': stack.push('['); break; case '(': stack.push('('); break; case '}': if (stack.isEmpty()||stack.pop() != '{') { return false; } break; case ']': if (stack.isEmpty()||stack.pop() != '[') { return false; } break; case ')': if (stack.isEmpty()||stack.pop() != '(') { return false; } break; } } return true; } }
运行结果
false true false true
相关文章推荐
- JAVA蓝桥杯(5)手机尾号评分
- Java中的SSH框架之struts2
- Spring MVC 映射处理器配置
- java中读取配置文件的方法
- 【慕课笔记】第二章 变量和常量 第2节 认识JAVA标识符
- struts2配置内置校验器
- java误区: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
- Java Web 服务器性能监控工具 JavaMelody
- Java知识三:对象的另一种实例化方式
- 对象的上转型对象
- 【慕课笔记】第二章 变量和常量 第1节 JAVA中的关键字
- java -jar classpath设置
- kafka文档(2)----kafka API(java版本)
- Java学习笔记之一个蛋疼的小细节
- Eclipse启动 org.eclipse.swt.SWTException: Invalid thread access问题解决方法
- 【项目实战】——Java根据奖品权重计算中奖概率实现抽奖(适用于砸金蛋、大转盘等抽奖活动)
- Spring MVC文件上传
- [Spring MVC] - @ModelAttribute使用
- Java多线程-wait(), notify(), notifyAll()、yield()、sleep()、join()、interrupt()原理及使用
- Java 除法 保留 n 为小数