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()!='('){
    不积跬步无以至千里,千里之堤毁于蚁穴。 你是点滴积累成就你,你的丝丝懒惰毁掉你。 与诸君共勉
  • 相关阅读:
    SUSE10 SP2/SP3 无规律死机故障解决
    随机铃声
    linux添加开机启动项
    SUSE Linux ShutdownManager issue
    linux添加开机启动项
    两个正在运行的activity之间的通信
    android 获取屏幕大小
    Linux开机启动过程分析
    grid的宽度设为100%问题
    动态处理editGridPanel
  • 原文地址:https://www.cnblogs.com/haoHaoStudyShare/p/7309527.html
Copyright © 2011-2022 走看看