zoukankan      html  css  js  c++  java
  • 20. Valid Parentheses【leetcode】

    20. Valid Parentheses

    Given a string containing just the characters '('')''{''}''[' and ']', determine if the input string is valid.

    The brackets must close in the correct order, "()" and "()[]{}" are all valid but "(]" and "([)]" are not.

    判断{},(),<>是否成对出现

    public class Solution {
        public boolean isValid(String s) {
            Stack<Character> stack=new Stack<>();
            for(char c:s.toCharArray()){
                if(c=='('||c=='{'||c=='['){
                    stack.push(c);
                }
                if(c==')'){
                    if(stack.isEmpty()||stack.pop()!='('){
                        return false;
                    }
                    
                }
                if(c=='}'){
                    if(stack.isEmpty()||stack.pop()!='{') {
                        return false;
                    }
                }
                if(c==']'){
                    if(stack.isEmpty()||stack.pop()!='['){
                        return false;
                    }                    
                }            
            }
             return stack.isEmpty();
        }
    }

    思路:

    1. 首先需要将所有右侧开口(<{进栈,如果遇到了左侧开口的符号则进行出栈
    2. 如果最后的栈为空,则证明所有的符号都刚好配对成功
    3. 特别注意:下面这行代码子啊进行判断的时候一定要先判断是否为空再出栈,否则会引发结果不正确
       if(stack.isEmpty()||stack.pop()!='('){
    不积跬步无以至千里,千里之堤毁于蚁穴。 你是点滴积累成就你,你的丝丝懒惰毁掉你。 与诸君共勉
  • 相关阅读:
    的地方d'fe'w
    日期
    equals方法
    接口作为成员变量类型
    匿名内部类注意事项
    匿名内部类
    局部内部类注意问题
    可以
    C中的volatile关键字
    继承权限问题
  • 原文地址:https://www.cnblogs.com/haoHaoStudyShare/p/7309527.html
Copyright © 2011-2022 走看看