有效的括号匹配
目录
一、题目
二、思路
三、代码实现
一、题目

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