Valid Parentheses

Given a string containing just the characters '('')''{''}''[' and ']', determine if the input string is valid.

The brackets must close in the correct order, "()" and "()[]{}" are all valid but "(]" and "([)]" are not.

SOLUTION1:

使用stack来解决的简单题目。所有的字符依次入栈

1. 遇到成对的括号弹栈,弹栈不成对返回false.

2. 栈为空只能压入左括号

3. 扫描完成时,栈应该为空,否则返回FALSE.


SOLUTION 2:

使用堆栈解决,比较简单。push右括号时,检查左括号在不在,如果不在,返回false,否则弹出一个左括号。

最后看栈是否为空,不为空代表括号数不对称,也要返回false;

 public class Solution {
public boolean isValid(String s) {
if (s == null) {
return false;
} int len = s.length(); // bug 1: don't use s as the name of the stack.
Stack<Character> stk = new Stack<Character>(); for (int i = 0; i < len; i++) {
char c = s.charAt(i);
switch(c) {
case '(':
case '[':
case '{':
stk.push(c);
break;
case ')':
if (!stk.isEmpty() && stk.peek() == '(') {
stk.pop();
} else {
return false;
}
break;
case '}':
if (!stk.isEmpty() && stk.peek() == '{') {
stk.pop();
} else {
return false;
}
break;
case ']':
if (!stk.isEmpty() && stk.peek() == '[') {
stk.pop();
} else {
return false;
}
break;
}
} return stk.isEmpty();
}
}

https://github.com/yuzhangcmu/LeetCode_algorithm/blob/master/stack/IsValid.java

最新文章

  1. Linux C popen()函数详解
  2. Jquery动态操作checkbox
  3. [Android]使用Kotlin开发Android(二)
  4. centos7安装mplayer 错误集锦
  5. 3dmax导出3ds具有过多要导出的面超过64k解决方法
  6. SQL-PIVOT 数据透视 行列转换
  7. SOCKSify Ruby
  8. centos6 install mplayer(multimedia)
  9. git log友好显示
  10. [bzoj1002][FJOI2007 轮状病毒] (生成树计数+递推+高精度)
  11. Select标签 依据value值默认选中 Jquery
  12. java面向对象之 封装 Encapsulation
  13. css相关 细节 优化 备忘
  14. [数据结构]C语言队列的实现
  15. idea在springboot项目中没有【新建JSP选项】的解决方法
  16. Python Selenium系列学习
  17. 多线程thread的使用
  18. Python代码运行应该注意哪些问题?
  19. 使用JavaScript实现表现和数据分离
  20. Spring中内置的一些工具类

热门文章

  1. DNS信息收集命令nslookup
  2. 006.ks.cfg文件相关
  3. canvas三角函数模拟水波效果
  4. hystrix dashboard Unable to connect to Command Metric Stream解决办法
  5. svn版本管理工具的使用
  6. CNN做序列标注问题(tensorflow)
  7. android studio java工程 报错
  8. C#通用数据库操作类
  9. python学习之思维导图
  10. linux中 判断变量中是否有给定元素