基于python判断字符串括号是否闭合{}[]()
作者:python学习者0 发布时间:2022-03-25 15:58:45
标签:python,字符串,括号
前言
经典面试题: 判断一个字符串里面的括号是否闭合,如:{{()}} 就是一个闭合的字符串。
{{()}]} 这个里面 ([)] 括号不对称,这种就是不闭合。
python判断闭合
解决基本思路:
先把左括号添加到一个列表里面,遇到右括号就弹出列表里面的最后一个存放进去的。
对比右括号和弹出的左括号是否对称,如果是就继续依次对比。
最后判断列表里面是否有多余的左括号,如果列表为空,说明全部被弹出,那就是闭合的
最后考虑下左括号和右括号有多余的情况
代码如下
def is_str_close(a):
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群 里还有不错的视频学习教程和PDF电子书!
判断括号是否闭合
'''
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))
来源:https://www.cnblogs.com/xxpythonxx/p/13669473.html
0
投稿
猜你喜欢
- 本文实例分析了LINUX下Oracle数据库用户创建方法。分享给大家供大家参考,具体如下:1)登录linux,以oracle用户登录(如果是
- str_replace — 子字符串替换 [str_replace]mixed str_replace ( mixed
- 实体有五种预定义的XML实体,HTML编码者应该熟悉。XML文档中的字符&、<、>、"和'被分别表示为
- XmlDocume
- 情况一:坐标上的内容是文字时如上图这样一个横向的柱状图,y坐标轴的内容太长后会导致显示不全。因为数据是由后端传过来的,有些会很长有些会比较短
- 最近在做一个领券功能的时候,发现在一定并发下会出现重复领券的问题。使用度娘一顿搜索操作之后,发现可以使用分布式锁来解决这个问题。什么是分布式
- 代码如下:Function splitx(strs1 As String, strs2 A
- 这10个asp处理网页编码转换的函数,不知何时收藏在我的电脑中,今天刚好看到了,拿出来与大家分享,这里各种常见的网页编码问题已经
- 在document.form1.submit();后加document.body.innerHtml = "W
- 1. 逆转字符串的三种方法1.1. 模拟C++中方法, 定义一个空字符串来实现通过设置一个空字符串, 然后讲参数中的字符串从后往前遍历, 使
- 围绕文字、符号、链接三个方面,主要是中文,草拟的个人行文经验:1. 文字避免写错。应付挑剔的读者是一个方面,某些关键词的错误,有可能就避过了
- 网页制作中用到的特效字,你一定是用图象处理软件制作的吧!告诉你,不用图象处理软件,我也能做出漂亮的特效字来,你看,阴影字我就是这样做出来的。
- 无意中看到一段用Tkinter库写的放烟花的程序,就跟着跑了一遍。设计理念:通过让画面上一个粒子分裂为X数量的粒子来模拟 * 效果。粒子会发生
- 设置cookie每个cookie都是一个名/值对,可以把下面这样一个字符串赋值给document.cookie:document.cooki
- ACCESS数据库中Field对象的caption属性(也就是标题)是用来设置数据字段的标题,在正常的数据库设计中为了保持维护的便利性,许多
- 数组:【重点1】implode(分隔,arr) 把数组值数据按指定字符连接起来例如:$arr=array('1','
- MYSQL数据库以它短小、方便、速度快、免费等优点成为很多网站目前首选数据库,但一般都是用PHP+MYSQL相结合来开发各种动态页面,其实A
- 什么是pyc文件pyc是一种二进制文件,是由py文件经过编译后,生成的文件,是一种byte code,py文件变成pyc文件后,加载的速度有
- //获得视频文件的缩略图function getVideoCover($file,$time,$name) { &nb
- 环境:A机器和B机器都是LINUX系统,但由于B机器已经空间不足,所以停掉不停操作数据库的服务后 ,准备在A机器进行导出操作。导出语句 ex