您的位置:首页 > 其它

LeetCode20. Valid Parentheses

2017-04-08 14:41 531 查看

题目

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.

思路

设计一个栈数据结构,每当遇到左括号时候压入栈,遇到有括号时候判断栈顶元素是不是一个与之匹配的左括号,如果是则出站,如果否则返回FALSE;最后若栈为空则返回TRUE,否则返回FALSE。

代码

public class Solution {
public boolean isValid(String s) {
char [] stack = new char[10000];
int top = -1;
if(s.charAt(0) == '}' || s.charAt(0) == ']' || s.charAt(0) == ')' ) return false;
int i = 0;
while(i < s.length()){
char c = s.charAt(i);
if(c == '{' || c == '[' || c == '('){
++top;
stack[top] = c;
}
else{
if(top < 0) return false;
char t = stack[top];
if(t == '{' && c == '}'){
--top;
}
else if(t == '[' && c == ']'){
--top;
}
else if(t == '(' && c == ')'){
--top;
}
else{
return false;
}
}
++i;
}
if(top == -1) return true;
else return false;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息