Lint-code-有效的括号序列
2017-02-24 20:06
253 查看
给定一个字符串所表示的括号序列,包含以下字符:
判定是否是有效的括号序列。
样例
括号必须依照
此题主要的思想是用栈来作为存储数据结构,我们将')'、‘}’、‘]’视为右括号,当遇到右括号时查看当前栈顶是否为与之对应的左括号,如果是,则将栈顶元素弹出,继续对比,如果不是与之对应的左括号,则退出返回false。
代码如下:
public static boolean isValidParentheses(String s) {
if(s == null || s.length() == 0 || s.length()%2!=0){
return false;
}
Stack<Character> stack = new Stack<Character>();
boolean flag = true;
for(int i=0;i<s.length();i++){
if(s.charAt(i) =='(' || s.charAt(i) == '{' || s.charAt(i) == '['){
stack.push(s.charAt(i));
}else if(s.charAt(i) == ')'){
if(!stack.empty() && stack.peek() == '('){
stack.pop();
}else{
flag = false;
break;
}
}else if(s.charAt(i) == '}'){
if(!stack.empty() && stack.peek() == '{'){
stack.pop();
}else{
flag = false;
break;
}
}else if(s.charAt(i) == ']'){
if(!stack.empty() && stack.peek() == '['){
stack.pop();
}else{
flag = false;
break;
}
}
}
if(!stack.empty()){
flag = false;
}
return flag;
}
'(', ')',
'{',
'}',
'['and
']',
判定是否是有效的括号序列。
样例
括号必须依照
"()"顺序表示,
"()[]{}"是有效的括号,但
"([)]"则是无效的括号。
此题主要的思想是用栈来作为存储数据结构,我们将')'、‘}’、‘]’视为右括号,当遇到右括号时查看当前栈顶是否为与之对应的左括号,如果是,则将栈顶元素弹出,继续对比,如果不是与之对应的左括号,则退出返回false。
代码如下:
public static boolean isValidParentheses(String s) {
if(s == null || s.length() == 0 || s.length()%2!=0){
return false;
}
Stack<Character> stack = new Stack<Character>();
boolean flag = true;
for(int i=0;i<s.length();i++){
if(s.charAt(i) =='(' || s.charAt(i) == '{' || s.charAt(i) == '['){
stack.push(s.charAt(i));
}else if(s.charAt(i) == ')'){
if(!stack.empty() && stack.peek() == '('){
stack.pop();
}else{
flag = false;
break;
}
}else if(s.charAt(i) == '}'){
if(!stack.empty() && stack.peek() == '{'){
stack.pop();
}else{
flag = false;
break;
}
}else if(s.charAt(i) == ']'){
if(!stack.empty() && stack.peek() == '['){
stack.pop();
}else{
flag = false;
break;
}
}
}
if(!stack.empty()){
flag = false;
}
return flag;
}
相关文章推荐
- LintCode_有效的括号序列
- lintcode: 有效的括号序列
- LintCode:有效的括号序列
- lintcode--有效的括号序列
- Google/LinkCode:E-有效的括号序列
- lintcode&九章算法——Google面试题 | 有效括号字符串 ? 待解决
- [LintCode] 有效的括号序列
- 有效的括号序列
- 【Lintcode】有效的括号序列
- LintCode--最长上升连续子序列
- 最长的有效括号序列长度
- 423 - 有效括号序列
- lintcode longest-increasing-continuous-subsequence 最长上升连续子序列
- 题目:有效的括号序列
- lintcode-有效回文字符串
- LintCode : 最长连续序列
- lintcode-423-有效的括号序列
- LintCode-不同的子序列
- Leet Code 20 Valid Parentheses - 有效括号 - Java
- 有效的括号序列(LintCode)