1、题目
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.
2、思路
用stack来实现,左边的进栈,如果是右边的出栈,发现没有或者不匹配就返回false
3、代码实现
public class Solution {public boolean isValid(String s) {if (s == null || s.length() == 0) {return false;}char chars[] = s.toCharArray();Stack<Character> stack = new Stack<Character>();for (int i = 0; i < chars.length; ++i) {if (chars[i] == '(' || chars[i] == '{' || chars[i] == '[') {stack.add(chars[i]);} else {if (!stack.isEmpty()) {Character value = stack.pop();if (chars[i] == ')') {if (value != '(') return false;}if (chars[i] == '}') {if (value != '{') return false;}if (chars[i] == ']') {if (value != '[') return false;}} else {return false;}}}return stack.isEmpty();}
}