您的位置:首页 > 编程语言 > Java开发

LeetCode20 Valid Parentheses的java 题解

2015-06-17 16:36 459 查看
题目:

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,不为空就出栈,判断出栈的字符和输入的字符是否配对,处理完整个字符串后如果栈不为空返回false

代码:

public static boolean isValid(String s) {

Stack<Character> stack=new Stack<Character>();
Hashtable<Character, Character> hashtable=new Hashtable<>();
hashtable.put('(', ')');
hashtable.put('{', '}');
hashtable.put('[', ']');
char[] input=s.toCharArray();
for(int i=input.length-1;i>=0;i--)
{
if(input[i]==')'||input[i]=='}'||input[i]==']')
{
stack.push(input[i]);
}
else {
Character temp=null;
if(stack.empty())
return false;
else {
temp=stack.pop();
}
if(hashtable.get(input[i])!=temp)
return false;

}
}
if(stack.empty())
return true;
else {
return false;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: