怎么用Python解决括号匹配问题

这篇文章主要介绍“怎么用Python解决括号匹配问题”,在日常操作中,相信很多人在怎么用Python解决括号匹配问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用Python解决括号匹配问题”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

成都网站建设、做网站服务团队是一支充满着热情的团队,执着、敏锐、追求更好,是创新互联的标准与要求,同时竭诚为客户提供服务是我们的理念。成都创新互联公司把每个网站当做一个产品来开发,精雕细琢,追求一名工匠心中的细致,我们更用心!

整体实现思路借助Python 的List 来实现 ,因为列表的Append 方法相当于栈的Push 方法即栈的压入,列表的Pop 方法相当于栈的Pop 方法即弹出。

详细的思路

首先,设置一个字典,用于存放我们要遍历的符号类型。

其次,是设置两个列表分别存放的是各种括号的开括号和闭括号,然后遍历给定的字符串,分如下几种情况:

  • 字符串为空时直接输出True

  • 字符串的符号不成对匹配时输出False

  • 字符串中的符号不是字典中的符号类型时,直接忽略

  • 遍历字符串,将正向的符号压入栈内,遍历到的字符如果是正向符号(正好是最近的一个符号时)的匹配内容就弹出栈

代码实现如下

#定义要检查匹配的符号类型brackets = {'}': '{', ']': '[', ')': '(', '>': '<'}#将符号的正反向进行分类bracket_l, brackets_r = brackets.values(), brackets.keys()
#定义一个检查字符串的方法def check(str1):    alist = [] #定义一个空列表    for c in str1:        if c in bracket_l:            alist.append(c)#将左符号压入栈内        elif c in brackets_r:#右符号要么出栈,要么匹配失败,不做处理            if alist and alist[-1] == brackets[c]:#判断alist不会空且alist最后一个字符等于左符号对应的右符号时                alist.pop() #就做出栈操作            else:                return False    return True #传入空的字符串直接返回true
if __name__ == '__main__':    print(check("6c[*]{7b +[(8e -s3) * (d4+t5)]}<<>>"))    print(check("6c*{7b+ [8e- 9f]}<>"))    print(check(""))

到此,关于“怎么用Python解决括号匹配问题”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!

分享文章:怎么用Python解决括号匹配问题
URL标题:https://www.cdcxhl.com/article4/ggeeoe.html

成都网站建设公司_创新互联,为您提供外贸网站建设企业建站建站公司自适应网站网站维护品牌网站制作

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

小程序开发