zoukankan      html  css  js  c++  java
  • 有效的括号

    给定一个只包括 ‘(‘,’)’,’{‘,’}’,’[‘,’]’ 的字符串,判断字符串是否有效。
    括号必须以正确的顺序关闭,”()” 和 “()[]{}” 是有效的但是 “(]” 和 “([)]” 不是。

    思路:

    利用一个列表模拟堆栈进行匹配,遍历字符串,遇见左括号就进行入栈操作,遇见一次右括号就进行一次出栈,并进行一次比较。例如栈内的符号是:({,下一个遍历的字符是},见到右括号则进行一次出栈操作,进行一次比较,比较的是{和}两个符号,是匹配的,则接着遍历下一个位置。利用字典的键值对特性进行比较

    代码如下:

    class Solution:
        def isValid(self, s):
            if len(s) % 2 == 1:#偶数个符号才是一定匹配的
                return False
    
            d = {'{': '}', '[': ']', '(': ')'}
            stack = []
            for i in s:
                # in stack
                if i in d:
                    stack.append(i)
                else:
                    if not stack or d[stack.pop()] != i:
                        return False
    
            return stack ==[]
  • 相关阅读:
    NTP时间同步
    《暗时间》
    寻找字典公共键
    maven pom.xml的execution报错
    maven安装scala插件
    html 和xml
    sparkstreaming+kafka
    zookeeper错误Error contacting service. It is probably not running.
    eclipse开发hive2程序
    eclipse开发hbase程序
  • 原文地址:https://www.cnblogs.com/tsdblogs/p/12325480.html
Copyright © 2011-2022 走看看