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.
题意:括号要匹配
思路:用队列,遇见左的就入,遇见右的就出
java代码:
public static boolean isValid(String s) {
char[] chars = s.toCharArray();
List<Character> result = new ArrayList<>();
for (int i = 0; i < chars.length; i++) {
if (chars[i] == '(' || chars[i] == '[' || chars[i] == '{') {
result.add(chars[i]);
} else {
if (result.size()==0) return false;
Character temp = result.remove(result.size() - 1);
if (temp == '(' && chars[i] != ')') return false;
if (temp == '[' && chars[i] != ']') return false;
if (temp == '{' && chars[i] != '}') return false;
}
}
if (result.size() == 0) return true;
else return false;
}