zoukankan      html  css  js  c++  java
  • Leetcode 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.


    解题思路:

    经典老题,用stack。

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

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

    注意:检查char是用==


     Java code:

    public boolean isValid(String s) {
              if(s.length() == 0) {
                  return false;
              }
              Stack<Character> x = new Stack<Character>();
              for(int i = 0; i < s.length(); i++) {
                  if(s.charAt(i) =='(' || s.charAt(i) == '[' || s.charAt(i) == '{') {
                      x.push(s.charAt(i));
                  }else{
                      if(x.size() == 0){
                          return false;
                      }
                      char y = s.charAt(i);
                      char z = x.pop();
                      if(!((y == ')' && z == '(') || (y == ']' && z == '[') 
                          || (y == '}' && z == '{'))){
                              return false;
                      }
                  }
              }
              return x.size() == 0;
        }

    Reference:

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

  • 相关阅读:
    WPF-ListView单元格设置文字换行
    WPF-GridView设置列宽按比例分配
    C#控制台输入密码星号显示
    安装pycharm
    超强的链接2
    redis
    day 46 htmljianjie
    day45 html超文本标记语言
    43 非阻塞 io多路复用
    42 队列 线程池 协程 geven模块 协程完成的socket
  • 原文地址:https://www.cnblogs.com/anne-vista/p/4828548.html
Copyright © 2011-2022 走看看