0
点赞
收藏
分享

微信扫一扫

LeetCode第11题:有效的括号

江南北 2022-04-13 阅读 52
java

题目:
有效的括号
给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
示例 1:
输入:s = “()”
输出:true
一、图解过程
采用栈(stack)的方式。
在这里插入图片描述
在这里插入图片描述
二、代码

package suanfa.有效的括号_11;

import java.util.Stack;

public class Eleven11 {
    public static void main(String[] args) {
        System.out.println(Eleven11.solution("()[]{}"));
        System.out.println(Eleven11.solution("(]"));
        System.out.println(Eleven11.solution("([)]"));
    }
    public static boolean solution(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);
            }else {
                if (stack.isEmpty()) {return false;}
                char l = stack.pop();
                if (ch == ')'){
                    if (l != '(') {return false;}
                }else if(ch == '}'){
                    if (l != '{') {return false;}
                }else if (ch == ']') {
                    if (l != '[') {return false;}
                }
            }
        }
        return stack.isEmpty();
    }

}

举报

相关推荐

0 条评论