有效的括号匹配

目录

一、题目

二、思路

三、代码实现


一、题目

二、思路

1.有三种考虑的方向:

(1)(()左括号多

(2)())右括号多

(3)([)]左右括号不匹配

2.使用栈来实现本题

(1)如果遇到左括号就入栈

(2)如果遇到右括号,就比较栈顶元素和当前的右括号是否匹配,如果匹配则出栈

(3)因为栈当中存储的左括号,当遍历完整个字符串,栈还是不为空的,则左括号多,否则右括号多

三、代码实现

class Solution {public boolean isValid(String s) {Stack stack = new Stack<>();for(int i = 0;i < s.length(); i++){char ch = s.charAt(i);if(ch == '(' || ch == '[' || ch == '{'){stack.push(ch);}else{if(stack.empty()){System.out.println("右括号多!");return false;}char top = stack.peek();if(top == '(' && ch == ')' || top == '[' && ch == ']' || top == '{' && ch == '}'){stack.pop();}else{System.out.println("左右括号不匹配!");return false;}}}if(!stack.empty()){System.out.println("左括号多!");return false;}return true;}
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部