20. Valid Parentheses
2016-01-28 08:37
323 查看
基础题目
建一个堆栈,对于这个字符串,如果是左括号就放到堆栈里面,如果是右括号,就弹出堆栈里的一个元素,如果此时堆栈是空的,肯定是不匹配的,如果弹出的不匹配,也返回false。做完以后看堆栈是不是正好的空的,如果是空的就返回true,否则就是false。
建一个堆栈,对于这个字符串,如果是左括号就放到堆栈里面,如果是右括号,就弹出堆栈里的一个元素,如果此时堆栈是空的,肯定是不匹配的,如果弹出的不匹配,也返回false。做完以后看堆栈是不是正好的空的,如果是空的就返回true,否则就是false。
public boolean isValid(String s) { if(s == null || s.length() == 0) { return false; } Stack<Character> stack = new Stack<Character>(); for(int i = 0; i < s.length(); i++) { char c = s.charAt(i); if(isLeft(c)) { stack.push(c); } else{ if(stack.isEmpty()) { return false; } else { char x = stack.pop(); if(!isMatch(x, c)) { return false; } } } } return stack.isEmpty(); } private boolean isLeft(char c) { if(c == '{' || c == '(' || c == '[') { return true; } else { return false; } } private boolean isMatch(char c1, char c2) { if(c1 == '(' && c2 == ')') { return true; } if(c1 == '[' && c2 == ']') { return true; } if(c1 == '{' && c2 == '}') { return true; } return false; }
相关文章推荐
- 数学之路(机器学习实践指南)-文本挖掘与NLP(2)
- IAR中ICF文件分析与应用
- 被解放的姜戈02 庄园疑云
- 从IT的角度思考BIM(三):敏捷开发
- 深入字节码 -- 使用 ASM 实现 AOP
- 淘宝店铺基础版全屏装修步骤及代码,已经经过测试
- asp.net服务器控件button先执行js再执行后台的方法
- Spring注解@Component、@Repository、@Service、@Controller区别
- Codeforces Round #310 (Div. 1) C. Case of Chocolate
- Jquery学习笔记一
- Jquery学习笔记一
- HDOJ 1094 A+B for Input-Output Practice (VII)
- 怎么写一个“完美”的单例模式
- 微软为什么直接推送Win10 RS1预览版14251版本?
- 二维码 界面定制
- 仿netcat,手写tcp通道,创建监听拥有命令行权限!
- HDOJ 1093 A+B for Input-Output Practice (V)
- hyper-v 报错 0x80070569
- SSH-Struts(一)——基本原理
- 19. Remove Nth Node From End of List