前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python笔记45-经典面试题:判断字符串括号是否闭合{}[]()

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

作者头像
上海-悠悠
发布2020-05-08 16:23:17
8910
发布2020-05-08 16:23:17
举报
文章被收录于专栏:从零开始学自动化测试

前言

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

python判断闭合

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

代码语言:javascript
复制
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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 从零开始学自动化测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • python判断闭合
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档