给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
使用Java代码直解:
使用进栈,弹栈的思想,最后判断栈是否为空在这里插入代码片
public boolean test(String str){
if (str.length() == 0 || str.length() % 2 != 0) return false;
Stack<Character> stack = new Stack<>();
for (Character ch : str.toCharArray()){
if (ch == '('){
stack.push(')');
}else if (ch == '{'){
stack.push('}');
}else if (ch == '['){
stack.push(']');
}else if (stack.empty() || ch != stack.pop()){
return false;
}
}
if (stack.empty()){
return true;
}
return false;
}
可以直接调用方法哦!本类调用记得加static变为静态方法!