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 }
  • 相关阅读:
    Django 类方式view进行进行用户验证
    Django-发送注册、忘记密码邮件验证-send_mail
    Django-当前菜单激活状态-模版 request | slice
    django url路由参数错误
    video.js不能控制本地视频或者音频播放时长
    Django中url使用命名空间的错误
    python_求相邻数
    scrapy_移除内容中html标签
    scrapy-redis功能简介
    Determining IP information for eth0...failed 错误解决
  • 原文地址:https://www.cnblogs.com/springfor/p/3869420.html
Copyright © 2011-2022 走看看