给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
public static boolean isValid(String s) {
Stack stack = new Stack();
for(Character c : s.toCharArray()){
boolean isNext = (c == ')' || c == '}' || c == ']');
if(c == '('){
stack.push(')');
} else if(c == '{'){
stack.push('}');
} else if(c == '['){
stack.push(']');
} else if(!stack.isEmpty() && isNext){
if(c.equals(stack.peek())){
stack.pop();
} else {
return false;
}
} else {
return false;
}
}
return stack.isEmpty();
}

该博客主要讨论如何实现一个有效的括号字符串判断算法。通过使用栈数据结构,检查输入字符串中的左括号和右括号是否匹配并按正确顺序闭合。当遇到左括号时,将其压入栈中;遇到右括号时,检查栈顶元素是否为对应的左括号,如果是则弹出栈顶元素,否则返回错误。最后,如果栈为空则说明字符串有效,否则无效。
2694

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



