📅  最后修改于: 2023-12-03 15:37:16.245000             🧑  作者: Mango
给定一个由括号组成的字符串,判断该字符串是否是有效的括号序列。
输入: "({})[]"
输出:有效
输入: "({[]})}[]"
输出:无效
public static boolean isValid(String s) {
Stack<Character> stack = new Stack<>();
for(int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if(c == '(' || c == '[' || c == '{') {
stack.push(c);
} else {
if(stack.isEmpty()) {
return false;
}
char top = stack.pop();
if((c == ')' && top != '(') ||
(c == ']' && top != '[') ||
(c == '}' && top != '{')) {
return false;
}
}
}
return stack.isEmpty();
}
以上代码在 Java 中实现了简单有效的括号序列检测算法,时间复杂度为 O(n)。