• python笔记45-经典面试题:判断字符串括号是否闭合{}[]()


    前言

    经典面试题: 判断一个字符串里面的括号是否闭合,如:{[{()}]()} 就是一个闭合的字符串。
    {[{()}]([)]} 这个里面 ([)] 括号不对称,这种就是不闭合。

    python判断闭合

    解决基本思路:先把左括号添加到一个列表里面,遇到右括号就弹出列表里面的最后一个存放进去的。
    对比右括号和弹出的左括号是否对称,如果是就继续依次对比。
    最后判断列表里面是否有多余的左括号,如果列表为空,说明全部被弹出,那就是闭合的
    最后考虑下左括号和右括号有多余的情况

    
    def is_str_close(a):
        '''
        判断括号是否闭合
        作者:上海-悠悠  QQ交流群:779429633
        '''
        b = []
        flag = True
        for i in a:
            if i == "{" or i == "[" or i == "(":
                # 左边的括号加进去
                b.append(i)
            elif i == "}":
                # 遇到右边括号}弹出最后面的一个{
                if len(b) == 0 or b.pop() != "{":
                    return False
            elif i == "]":
                # 遇到右边括号]弹出最后面的一个[
                if len(b) == 0 or b.pop() != "[":
                    return False
            elif i == ")":
                # 遇到右边括号)弹出最后面的一个(
                if len(b) == 0 or b.pop() != "(":
                    return False
        # 判断最后列表b里面的左边括号是否全部被弹出
        if len(b) != 0:
            flag = False
        return flag
    
    if __name__ == '__main__':
        a = "{[{()}]()}"
        print(is_str_close(a))
        b = "({[{()}]()}"
        print(is_str_close(b))
        c = "{[{()}]()}]"
        print(is_str_close(c))
    

    运行结果
    True
    False
    False

  • 相关阅读:
    iOS学习——Xcode9上传项目到GitHub
    iOS 中 常用的第三方库
    ios中pch文件的创建与配置
    BlocksKit的使用
    IOS按需返回刷新数据
    16-CoreData之多表关联(存储自定义数据模型)
    分解gif图片并保存
    (转)jQuery基础之选择器
    (转)那天有个小孩教我WCF[一][1/3]
    (转)Expression 表达式树学习整理
  • 原文地址:https://www.cnblogs.com/yoyoketang/p/12838724.html
Copyright © 2020-2023  润新知