有效的括号序列
2016-05-31 16:42
429 查看
给定一个字符串所表示的括号序列,包含以下字符:
判定是否是有效的括号序列。
括号必须依照
public
class Solution {
/**
* @param s A string
* @return whether the string is a valid parentheses
* 利用栈的先入后出的特征
* java也有Stack类 import.util.Stack
* peek()方法: 查看栈顶对象而不移除它
*/
public boolean isValidParentheses(String s) {
// Write your code here
Stack ss = new Stack();
char temp;
if (s.length() == 0){
return true;
}
for (int i = 0; i < s.lengt
4000
h(); i++){
temp = s.charAt(i);
if (temp == '(' || temp == '{' || temp == '['){
ss.push(temp);
}
else if (temp == ')'){
if (!ss.empty() && ss.peek() == '('){
ss.pop();
}
else{
return false;
}
}
else if (temp == '}'){
if (!ss.empty() && ss.peek() == '{'){
ss.pop();
}
else{
return false;
}
}
else if (temp == ']'){
if (!ss.empty() && ss.peek() == '['){
ss.pop();
}
else{
return false;
}
}
}
return ss.empty();//若最后为空,则为有效序列
}
}
'(', ')',
'{',
'}',
'['and
']',
判定是否是有效的括号序列。
括号必须依照
"()"顺序表示,
"()[]{}"是有效的括号,但
"([)]"则是无效的括号。
public
class Solution {
/**
* @param s A string
* @return whether the string is a valid parentheses
* 利用栈的先入后出的特征
* java也有Stack类 import.util.Stack
* peek()方法: 查看栈顶对象而不移除它
*/
public boolean isValidParentheses(String s) {
// Write your code here
Stack ss = new Stack();
char temp;
if (s.length() == 0){
return true;
}
for (int i = 0; i < s.lengt
4000
h(); i++){
temp = s.charAt(i);
if (temp == '(' || temp == '{' || temp == '['){
ss.push(temp);
}
else if (temp == ')'){
if (!ss.empty() && ss.peek() == '('){
ss.pop();
}
else{
return false;
}
}
else if (temp == '}'){
if (!ss.empty() && ss.peek() == '{'){
ss.pop();
}
else{
return false;
}
}
else if (temp == ']'){
if (!ss.empty() && ss.peek() == '['){
ss.pop();
}
else{
return false;
}
}
}
return ss.empty();//若最后为空,则为有效序列
}
}
相关文章推荐
- 地图(无界面的 简单功能)
- 欧几里德算法及python脚本实现
- java.lang.IllegalStateException: TimerTask is scheduled already问题分析
- 二级列表ExpandableListView
- IIS短文件名泄露漏洞检测
- 输入输出1
- 解决svn 异常:svn: E155027: Tree conflict can only be resolved to working state; {0} not resolved
- 【费马小定理】HDU4704-Sum
- fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
- Codeforces 625D Finals in arithmetic(构造)
- 区分JS中的undefined,null,"",0和false
- 深入浅出Mybatis系列(三)---配置详解之properties与environments(mybatis源码篇)
- 软件开发中遇到的问题
- Middle-题目71:105. Construct Binary Tree from Preorder and Inorder Traversal
- Cisco 交换机端口限速
- 【转】属性与字段的区别
- leetcode zigzag代码
- 机器学习之——神经网络学习
- pgsql 查询jsonb中包含某个键值对的表记录
- JVm性能调优4:GC日志分析