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.
public static boolean isValid(String s) {
if (s == null || s.length() <= 1) return false;
Stack<Character> bracket = new Stack<Character>();
bracket.push(s.charAt(0));
for (int i = 1; i < s.length(); i++) {
if (s.charAt(i) == '(' || s.charAt(i) == '[' || s.charAt(i) == '{') {
bracket.push(s.charAt(i));
} else if (s.charAt(i) == ')' && bracket.size() !=0 && bracket.peek() == '(') {
bracket.pop();
} else if (s.charAt(i) == ']' && bracket.size() !=0 && bracket.peek() == '[') {
bracket.pop();
} else if (s.charAt(i) == '}' && bracket.size() !=0 && bracket.peek() == '{') {
bracket.pop();
} else {
return false;
}
}
if (bracket.size() != 0) return false;
return true;
}
转载请注明出处:http://blog.youkuaiyun.com/beiyeqingteng
本文介绍了一个简单的算法,用于检查字符串中的括号(包括圆括号、方括号和花括号)是否正确配对。通过使用栈数据结构,该算法能够有效地判断输入字符串中的括号是否有效。
2116

被折叠的 条评论
为什么被折叠?



