zoukankan      html  css  js  c++  java
  • 括号序列

    题目

    给出一个仅包含字符'(',')','{','}','['和']',的字符串,判断给出的字符串是否是合法的括号序列
    括号必须以正确的顺序关闭,"()"和"()[]{}"都是合法的括号序列,但"(]"和"([)]"不合法。

    eg:

    输入"["

    输出 False

    输入“{}”

    输出 True

    分析

    1. 定义一个栈,列表就行,用来接收或者比较 S 的每个字符。
    2. 首先进行判断,如果栈为空,直接 append,否则的话进行判断,如果和前一个字符相等,直接添加,因为相等的字符肯定不是括号序列,然后依次进行判断每个字符和栈顶字符是否是一对,如果是就弹出栈顶。

    实现代码:

    #!/usr/bin/env python
    # -*- encoding: utf-8 -*-
    class Solution:
        def isValid(self, s):
            valid_list = []
            for valid in s:
                if len(valid_list) == 0:
                    valid_list.append(valid)
                elif valid_list[-1]==valid:
                    valid_list.append(valid)
                else:
                    if valid =="}" and valid_list[-1]=="{":
                        valid_list.pop()
                    elif valid =="]" and valid_list[-1]=="[":
                        valid_list.pop()
                    elif valid ==")" and valid_list[-1]=="(":
                        valid_list.pop()
            return False if len(valid_list) else True
    
    if __name__ == "__main__":
        s = Solution()
        result = s.isValid("[(){}]")
        print(result)
    不论你在什么时候开始,重要的是开始之后就不要停止。 不论你在什么时候结束,重要的是结束之后就不要悔恨。
  • 相关阅读:
    Pandas | 21 日期功能
    Pandas | 20 级联
    Pandas | 19 合并/连接
    Pandas | GroupBy 分组
    Pandas | 缺失数据处理
    Pandas | 16 聚合
    Pandas | 15 窗口函数
    Pandas | 14 统计函数
    Pandas | 13 索引和选择数据
    Pandas | 12 选项和自定义
  • 原文地址:https://www.cnblogs.com/yunhgu/p/13954166.html
Copyright © 2011-2022 走看看