zoukankan      html  css  js  c++  java
  • LeetCode(20):Valid Parentheses

    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.

    题意:给定一个字符串,由'(', ')', '{', '}', '['']'组成,判断这串字符串是不是有效的组合。

    思路:使用栈来解决此题。遍历字符串,如果第一个字符为)} ]中的一个则直接返回false;否则将其压入栈中。接着处理下面的字符:

    (1)如果是( { [中的一个则直接压入栈中

    (2)如果是})]中的一个,则和栈顶元素比较:如果栈顶元素是遇到元素的匹配字符则栈顶元素出栈,否则返回false

    最后判断栈是否为空,如果为空则返回true,否则返回false。

    代码:

    public boolean isValid(String s) {
            Stack  stack = new Stack ();
             if (s.length()<2) return false;
             String temp = String.valueOf(s.charAt(0));
             if (temp.equals(")")||temp.equals("}")||temp.equals("]")) return false;
             for(int i=0;i<s.length();i++)
             {
                    temp = String.valueOf(s.charAt(i));
                    if(temp.equals("(")||temp.equals("{")||temp.equals("[")){
                        stack.push(temp);
                    }
                    else if(!stack.isEmpty())
                    {
                    switch (temp) {
                        case ")":
                            if(("(").equals(stack.peek())){
                                stack.pop();
                                }else {
                                    return false;
                                }
                            break;
                        case "}":
                            if(("{").equals(stack.peek())){
                                stack.pop();
                            }else {
                                return false;
                            }
                            break;
                        case "]":
                            if(("[").equals(stack.peek())){
                                stack.pop();
                            }else{
                                return false;
                            }
                            break;
                        default:
                            return false;
                        }
                    }
                    else {
                        return false;
                    }
                } //for
             if (stack.isEmpty()){
                 return true;
             }else {
                return false;
            }
        }
  • 相关阅读:
    Jboss未授权访问漏洞复现
    jboss反序列化漏洞复现(CVE-2017-7504)
    JBoss 5.x / 6.x反序列化漏洞(CVE-2017-12149)复现
    CVE-2019-5418复现
    CVE-2018-3760复现
    windows第三方提权——FileZilla提权
    msf学习
    脚本木马学习
    sql head注入
    sql 盲注理解
  • 原文地址:https://www.cnblogs.com/Lewisr/p/5115107.html
Copyright © 2011-2022 走看看