zoukankan      html  css  js  c++  java
  • 20.Valid Parentheses

    class Solution:
        def isValid(self, s: str) -> bool:
            dic = {"(":")",")":"(","[":"]","]":"[","{":"}","}":"{"}
            if len(s) == 0:
                return True
            else:
                stack = ""
                for i,w in enumerate(s):
                    if len(stack) >0 and stack[-1] == dic[w]:
                        stack = stack[:-1]
                    else:
                        stack += w
                if len(stack) == 0:
                    return True
                else:
                    return False

    Java 版:

      • 利用栈的先进后出思想来做;
      • 遇到前括号,则入栈;
      • 遇到后括号,则从栈顶拿元素,判断是否是一对;
      • 注意判断栈是否是空栈。

    class Solution {
        public boolean isValid(String s) {
            if(s.length() == 0) return true;
            Stack<Character> stack = new Stack<>();
            for(int i = 0; i < s.length(); i++){
                char c = s.charAt(i);
                if(c == '(' || c == '[' || c == '{') stack.push(c); //入栈
                else{
                    if(stack.size() == 0) return false;//判栈空,栈非空才能有元素出栈
                    char top = stack.pop();//出栈
                    if(c == ')' && top == '(') continue;//判断能否配对
                    else if(c == ']' && top == '[') continue;
                    else if(c == '}' && top == '{') continue;
                    else return false; //都不能配对成功,则返回 false
                }
            }
            if(stack.size() > 0) return false;
            return true;
        }
    }
  • 相关阅读:
    Python staticmethod() 函数
    Python open() 函数
    Python input() 函数
    Python divmod() 函数
    Python abs() 函数
    instanceof和类型转换
    多态
    方法重写
    this
    Super详解
  • 原文地址:https://www.cnblogs.com/luo-c/p/12857142.html
Copyright © 2011-2022 走看看