算法4th 1.3.4 使用栈判定其中的括号是否配对完整

2020-12-22 17:29

阅读:542

标签:main   out   一个   public   for   style   font   put   出栈   

public class Parentheses {
    public static void main(String[] args) {
        Stack s = new Stack();
        String string = StdIn.readString();
        String[] inputs = string.split(""); //获取每一个字符
        for (String input : inputs){
            if (input.equals("{")||input.equals("(")||input.equals("[")){
                s.push(input);
            }else if (!s.isEmpty()){
                if (input.equals("}")){
                    if (!s.pop().equals("{")){
                        System.out.println(false);
                        break;
                    }
                }
                if (input.equals(")")){
                    if (!s.pop().equals("(")){
                        System.out.println(false);
                        break;
                    }
                }
                if (input.equals("]")){
                    if (!s.pop().equals("[")){
                        System.out.println(false);
                        break;
                    }
                }
            }
        }
        if (s.isEmpty()){
            System.out.println(true);
        }
    }
}
解题思路:
如果输入的是左括号就压栈
如果输入的是右括号就获取栈顶元素并判断是否和右括号配对
如果出栈元素与输入元素不配对 则配对错误
如果配对成功,此时所有元素都应该出栈,栈为空

算法4th 1.3.4 使用栈判定其中的括号是否配对完整

标签:main   out   一个   public   for   style   font   put   出栈   

原文地址:https://www.cnblogs.com/pxy-1999/p/13215409.html


评论


亲,登录后才可以留言!