• *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.

    题解:

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

    解题方法是:

    一个个检查给的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 }

    reference: http://www.cnblogs.com/springfor/p/3869420.html

  • 相关阅读:
    HUST-1350 Trie
    hihocoder-第六十一周 Combination Lock
    hihocoder-1196 : 高斯消元·二
    hihocoder-1195 : 高斯消元·一
    SPOJ
    HDU-5074
    UVALive
    POJ-2195
    UVALive
    POJ-1556
  • 原文地址:https://www.cnblogs.com/hygeia/p/4812037.html
Copyright © 2020-2023  润新知