c语言蓝桥删除多余的括号,蓝桥杯 括号问题

该代码实现了一个检查字符串中括号是否正确匹配的方法。它使用栈数据结构,遇到开括号时压入栈,遇到闭括号时弹出栈顶元素并与当前括号比较,若不匹配则返回false。最后栈为空则表示括号匹配,否则不匹配。示例测试用例展示了不同的匹配情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下面的代码用于判断一个串中的括号是否匹配所谓匹配是指不同类型的括号必须左右呼应,可以相互包含,但不能交叉 例如:

..(..[..]..)..  是允许的 ..(...[...)....].... 是禁止的

对于 main 方法中的测试用例,应该输出:

false

true

false

false

import java.util.Stack;

public class Main{

public static void main(String[] args){

System.out.println(isGoodBracket("{{{{}}}}"));

System.out.println(isGoodBracket("{{{{}}]}}"));

System.out.println(isGoodBracket("{{{{[[[]]]}}}}"));

System.out.println(isGoodBracket("{{[{{]}}}}"));

}

public static boolean isGoodBracket(String s){

Stack stack=new Stack();

for(int i=0;i

char ch=s.charAt(i);

if(ch=='(') stack.push(')');

if(ch=='[') stack.push(']');

if(ch=='{') stack.push('}');

if(ch==')'||ch==']'||ch=='}'){

if(stack.empty()) return false;

if(stack.pop()!=ch) return false;

}

}

if(stack.empty()==false) return false;

return true;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值