20. Valid Parentheses【栈】
2017/3/30 19:26:58
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.
Subscribe to see which companies asked this question.
版本1:O(n) O(n) 简单题。多括号匹配问题,使用栈作为工具去匹配即可。
注意事项:两个地方需要判断栈是否为空。一个是不够,一个是剩余。
public boolean isValid(String s) { Stack<Character> ss = new Stack<Character>(); for ( char c : s.toCharArray() ) if ( c == '(') ss.push(')'); else if ( c == '[') ss.push(']'); else if ( c == '{') ss.push('}'); else if (ss.isEmpty() || ss.pop() != c ) return false; return ss.empty(); }