leetCode 20.有效的括号_java

import java.util.Stack;

/**
 * @author chengxy
 * @date 2018/6/29 14:10
 * 有效的括号 https://leetcode-cn.com/problems/valid-parentheses/description/
 */
public class DemoTest0629 {
    public static void main(String[] args) {
        boolean valid = isValid("){");
        System.out.println(valid);
    }
    public static boolean isValid(String s) {
        if (s == null || "".equals(s)) {
            return true;
        }
        if(s.length()%2 != 0){
            return false;
        }
        Stack stack = new Stack();
            for (int i = 0; i < s.length(); i++) {
                String s1 = String.valueOf(s.charAt(i));
                String pop;
                if ("(".equals(s1) || "{".equals(s1) || "[".equals(s1)) {
                    stack.push(s1);
                } else if (")".equals(s1)) {
                    if (stack.size()<1){
                        return false;
                    }else {
                        pop = (String) stack.pop();
                    }
                    if (!"(".equals(pop)) {
                        return false;
                    }
                } else if ("}".equals(s1)) {
                    if (stack.size()<1){
                        return false;
                    }else {
                        pop = (String) stack.pop();
                    }
                    if (!"{".equals(pop)) {
                        return false;
                    }
                } else if ("]".equals(s1)) {
                    if (stack.size()<1){
                        return false;
                    }else {
                        pop = (String) stack.pop();
                    }
                    if (!"[".equals(pop)) {
                        return false;
                    }
                }
            }
        if (!stack.empty()){
            return false;
        }
        return true;
    }
}

猜你喜欢

转载自blog.csdn.net/qq_36183706/article/details/80857905