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 }
  • 相关阅读:
    Shortcut key for WPF
    Make webclient support upload the large file which are larger than 1G
    Decodes a QuotedPrintable encoded string
    C# USB Detection winform and WPF
    [转] 线程同步
    C# x86应用x64系统上读取x64位应用的注册表
    CSS Sprites图片拼合生成器实现思路
    python 复制文件
    Resources: Tips of Notepad++
    ASP.net MVC与RESTful ROA的思想还是有点区别的
  • 原文地址:https://www.cnblogs.com/springfor/p/3869420.html
Copyright © 2011-2022 走看看