public boolean isValid(String s) {
Stack<Character> stack=new Stack<>();
for (int i = 0; i <s.length() ; i++) {
char ch=s.charAt(i);
if (ch=='{'||ch=='['||ch=='('){
stack.push(ch);
}
if (ch=='}'||ch==']'||ch==')'){
if (stack.empty()){ //右括号多
return false;
}
char ch1=stack.peek();
if (ch1=='{'&&ch=='}'||ch1=='['&&ch==']'||ch1=='('&&ch==')'){
stack.pop(); //如果匹配移除栈顶
}else {
return false;//不匹配情况
}
}
}
if (stack.empty()){//左括号多
return true;
}
return false;
}
JAVA 括号匹配问题 转自力扣
最新推荐文章于 2022-10-04 23:42:54 发布
本文探讨了如何使用JAVA中的栈数据结构来解决经典的括号匹配问题。通过介绍栈的基本操作,深入解释了如何通过压栈和弹栈来检查一对括号是否匹配,从而实现有效括号字符串的判断。
摘要由CSDN通过智能技术生成