基于python判断字符串括号是否闭合{}[]()


Posted in Python onSeptember 21, 2020

前言

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

{{()}]} 这个里面 ([)] 括号不对称,这种就是不闭合。

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))

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
linux系统使用python监控apache服务器进程脚本分享
Jan 15 Python
python使用内存zipfile对象在内存中打包文件示例
Apr 30 Python
Python pickle模块用法实例
Apr 14 Python
Python中.py文件打包成exe可执行文件详解
Mar 22 Python
Python 爬虫图片简单实现
Jun 01 Python
python tensorflow基于cnn实现手写数字识别
Jan 01 Python
[原创]python爬虫(入门教程、视频教程)
Jan 08 Python
windows下python 3.6.4安装配置图文教程
Aug 21 Python
python的scipy实现插值的示例代码
Nov 12 Python
python实现QQ邮箱发送邮件
Mar 06 Python
python求numpy中array按列非零元素的平均值案例
Jun 08 Python
python脚本框架webpy的url映射详解
Nov 20 Python
属性与 @property 方法让你的python更高效
Sep 21 #Python
Python如何在bool函数中取值
Sep 21 #Python
python 密码学示例——凯撒密码的实现
Sep 21 #Python
python 密码学示例——理解哈希(Hash)算法
Sep 21 #Python
python中的垃圾回收(GC)机制
Sep 21 #Python
如何在Python3中使用telnetlib模块连接网络设备
Sep 21 #Python
总结Pyinstaller的坑及终极解决方法(小结)
Sep 21 #Python
You might like
SSI指令
2006/11/25 PHP
php对文件夹进行相关操作(遍历、计算大小)
2015/11/04 PHP
thinkPHP中配置的读取与C方法详解
2016/12/05 PHP
PHP设计模式之装饰器模式实例详解
2018/02/07 PHP
PHP pthreads v3下worker和pool的使用方法示例
2020/02/21 PHP
ppk谈JavaScript style属性
2008/10/10 Javascript
关于juqery radio写法的兼容性问题(新老版本jquery)
2010/06/14 Javascript
jQuery contains过滤器实现精确匹配使用方法
2013/04/12 Javascript
JSONP跨域的原理解析及其实现介绍
2014/03/22 Javascript
javascript里绝对用的上的字符分割函数总结
2014/07/31 Javascript
iscroll.js的上拉下拉刷新时无法回弹的解决方法
2016/02/18 Javascript
浅析jQuery Ajax请求参数和返回数据的处理
2016/02/24 Javascript
原生js实现放大镜效果
2017/01/11 Javascript
使用bootstrap-paginator.js 分页来进行ajax 异步分页请求示例
2017/03/09 Javascript
浅谈sass在vue注意的地方
2017/08/10 Javascript
解决IE7中使用jQuery动态操作name问题
2017/08/28 jQuery
BootStrap Table实现server分页序号连续显示功能(当前页从上一页的结束序号开始)
2017/09/12 Javascript
swiper实现异形轮播效果
2019/11/28 Javascript
python实现简单的计时器功能函数
2015/03/14 Python
Python中利用函数装饰器实现备忘功能
2015/03/30 Python
浅谈dataframe中更改列属性的方法
2018/07/10 Python
浅谈python之新式类
2018/08/12 Python
python异常触发及自定义异常类解析
2019/08/06 Python
浅谈JupyterNotebook导出pdf解决中文的问题
2020/04/22 Python
Windows下Anaconda和PyCharm的安装与使用详解
2020/04/23 Python
Python脚本实现监听服务器的思路代码详解
2020/05/28 Python
使用HTML5 Canvas API绘制弧线的教程
2016/03/22 HTML / CSS
L’AGENCE官网:加州女装品牌
2018/06/03 全球购物
Perfume’s Club中文官网:西班牙美妆在线零售品牌
2020/08/24 全球购物
大堂副理的岗位职责范文
2014/02/17 职场文书
教师校本培训方案
2014/02/26 职场文书
环境工程专业自荐信范文
2014/03/18 职场文书
护士个人自我鉴定
2014/03/24 职场文书
营业员岗位职责
2015/02/11 职场文书
护士旷工检讨书
2015/08/15 职场文书
SQL语法CONSTRAINT约束操作详情
2022/01/18 MySQL