zoukankan      html  css  js  c++  java
  • Valid Parentheses leetcode java

    题目

    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.

    题解:

    这道题是一道很常见的老题,记得当时看严蔚敏的数据结构还有数据结构课上面都见过这道题,一道训练栈的基础题。

    解题方法是:

    一个个检查给的characters,如果是左括号都入栈;如果是右括号,检查栈如果为空,证明不能匹配,如果栈不空,弹出top,与当前扫描的括号检查是否匹配。

    全部字符都检查完了以后,判断栈是否为空,空则正确都匹配,不空则证明有没匹配的。

    注意:

    检查字符是用==,检查String是用.isEqual(),因为String是引用类型,值相等但是地址可能不等。

    代码如下:

     1     public boolean isValid(String s) {
     2         if(s.length()==0||s.length()==1)
     3             return false;
     4 
     5         Stack<Character> x = new Stack<Character>();
     6         for(int i=0;i<s.length();i++){
     7             if(s.charAt(i)=='('||s.charAt(i)=='{'||s.charAt(i)=='['){
     8                 x.push(s.charAt(i));
     9             }else{
    10                 if(x.size()==0)
    11                     return false;
    12                 char top = x.pop();
    13                 if(s.charAt(i)==')')
    14                     if(top!='(')
    15                         return false;
    16                 else if(s.charAt(i)=='}')
    17                     if(top!='{')
    18                         return false;
    19                 else if(s.charAt(i)==']')
    20                     if(top!='[')
    21                         return false;
    22             }
    23     }
    24         return x.size()==0;
    25 }
  • 相关阅读:
    [py]你真的了解多核处理器吗? 了解多线程
    [py]监控内存并出图
    [py]django强悍的数据库接口(QuerySet API)-增删改查
    【Unity Shaders】Transparency —— 透明的cutoff shader
    使用GDAL库中的RPC校正问题
    celery最佳实践
    Eclipse 快捷方式 指定 固定 workspace
    java 判断是否是周末
    如何设制 select 不可编辑 只读
    golang函数可变参数传递性能问题
  • 原文地址:https://www.cnblogs.com/springfor/p/3869420.html
Copyright © 2011-2022 走看看