zoukankan      html  css  js  c++  java
  • 【leetcode】20.有效的括号

    题目

    给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。

    示例 1:输入: "()"
    输出: true
    示例 2:输入: "()[]{}"
    输出: true
    示例 3:输入: "(]"
    输出: false
    示例 4:输入: "([)]"
    输出: false
    示例 5:输入: "{[]}"
    输出: true

    思路

    第一个思路
    考虑两种情况:

    1. 看括号所组成的字符串是不是一个回文字符
    2. 连续括号组成匹配项

    贴一下我弱智的代码

    
    def isValid(s):
            symbol_map = {"(":")", ")":"(",
                         "{":"}", "}":"{",
                         "[":"]", "]":"["
                         }
            if s == "":
                return True
            s = list(s)
            if len(s) % 2 != 0:
                return False
            if symbol_map[s[0]] == s[1]:
                length = len(s)
                i = 0
                while i <= length:
                    if i <= length - 1:
                        if symbol_map[s[i]] == s[i+1]:
                            i += 2
                            continue
                        else:
                            break
                    if i == length:
                        return True
            else:
                re_s = reversed(s)
                return len([1 for i in zip(s, re_s) if symbol_map[i[0]] == i[1]]) == len(s)
    if __name__ == "__main__":
        s = "()"
        print(isValid(s))
    

    代码

    参考大神的代码,如沐春风,同时也感受到了自己是多么的弱。

    class Solution:
        def isValid(self, s: str) -> bool:
            while '{}' in s or '()' in s or '[]' in s:
                s = s.replace('{}', '')
                s = s.replace('[]', '')
                s = s.replace('()', '')
            return s == ''
    
  • 相关阅读:
    解决Warning: mysql_connect(): Headers and client library minor version mismatch. 警告
    读取微博feed伪代码
    [待续]不为人知的PHP-SPL标准库
    封装pyMysql
    捉“客”记
    实现小程序插件自定义导航栏
    圆形与矩形的碰撞检测--Mr.Ember
    mpvue原理分析
    webpack学习--Mr.Ember
    原型链、继承--Mr.Ember
  • 原文地址:https://www.cnblogs.com/wemo/p/10767935.html
Copyright © 2011-2022 走看看