有效的括号——字符串匹配问题

通过遍历字符串并使用栈来判断括号是否有效。遇到左括号入栈,遇到右括号与栈顶元素匹配。遍历结束后,栈为空且所有括号已匹配则有效,否则无效。
摘要由CSDN通过智能技术生成

字符串匹配问题
题目描述:给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。

有效字符串需满足:

左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
在这里插入图片描述这道题无疑用栈能够更好的解决问题,但是首先得明白它几个案例
在这里插入图片描述
方法:

  • 1.遍历当前字符串,如果是左括号就入栈
  • 2.当 当前的字符串的字符是右括号,那么和当前栈顶的元素的括号进行批匹配,如果匹配成功,那么直接将栈顶出栈。
  • 3.当i下标对应的字符串和栈顶的字符串不能够匹配的时候,那么说明,右括号匹配错位
  • 4.当遍历结束后,如果i下标已经没有元素,此时栈内为空,那么字符串就完成匹配
  • 4.1如果i下标还有元素,但是栈内为空,说明此时右括号多,此时匹配失败
  • 4.2如果i下标没有元素,但是栈内还有元素,说明此时左括号多,此时也匹配失败
    代码实现
    public static boolean isValid(String s) {
   
        Stack<Character> stack = new Stack<>();<
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值