基于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 相关文章推荐
python 从远程服务器下载东西的代码
Feb 10 Python
Python闭包实现计数器的方法
May 05 Python
Python实现将Excel转换为json的方法示例
Aug 05 Python
Python Xml文件添加字节属性的方法
Mar 31 Python
python pandas读取csv后,获取列标签的方法
Nov 12 Python
对python中的argv和argc使用详解
Dec 15 Python
Python中的 sort 和 sorted的用法与区别
Aug 10 Python
Python 复平面绘图实例
Nov 21 Python
python输出结果刷新及进度条的实现操作
Jul 13 Python
MoviePy常用剪辑类及Python视频剪辑自动化
Dec 18 Python
pyspark对Mysql数据库进行读写的实现
Dec 30 Python
python+opencv实现视频抽帧示例代码
Jun 11 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
MySQL 日期时间函数常用总结
2012/06/12 PHP
thinkphp模板继承实例简述
2014/11/26 PHP
PHP文件操作之获取目录下文件与计算相对路径的方法
2016/01/08 PHP
js下关于onmouseout、事件冒泡的问题经验小结
2010/12/09 Javascript
jQuery学习笔记之jQuery.extend(),jQuery.fn.extend()分析
2014/06/09 Javascript
理解javascript封装
2016/02/23 Javascript
BootStrap制作导航条实例代码
2016/05/06 Javascript
简单实现的JQuery文本框水印插件
2016/06/14 Javascript
Javascript实现前端简单的路由实例
2016/09/11 Javascript
Node Puppeteer图像识别实现百度指数爬虫的示例
2018/02/22 Javascript
layer.confirm取消按钮绑定事件的方法
2018/08/17 Javascript
Python中__new__与__init__方法的区别详解
2015/05/04 Python
在Python中操作字典之clear()方法的使用
2015/05/21 Python
Python实现图像几何变换
2015/07/06 Python
python with提前退出遇到的坑与解决方案
2018/01/05 Python
python去除文件中重复的行实例
2018/06/29 Python
python中sys.argv函数精简概括
2018/07/08 Python
django开发post接口简单案例,获取参数值的方法
2018/12/11 Python
详解python selenium 爬取网易云音乐歌单名
2019/03/28 Python
python3.5安装python3-tk详解
2019/04/26 Python
详解pyppeteer(python版puppeteer)基本使用
2019/06/12 Python
利用Python产生加密表和解密表的实现方法
2019/10/15 Python
基于Python中random.sample()的替代方案
2020/05/23 Python
Python+Selenium随机生成手机验证码并检查页面上是否弹出重复手机号码提示框
2020/09/21 Python
详解css3自定义滚动条样式写法
2017/12/25 HTML / CSS
利用CSS3参考手册和CSS3代码生成工具加速来学习网页制
2012/07/11 HTML / CSS
中科软测试工程师面试题
2012/06/16 面试题
影视制作岗位职责
2013/12/04 职场文书
前台接待员岗位职责
2014/01/02 职场文书
2014年公务员思想汇报范文:全心全意为人民服务
2014/03/06 职场文书
办公自动化专业大学生职业规划书
2014/03/06 职场文书
王老吉广告词
2014/03/20 职场文书
党员个人党性分析材料
2014/12/18 职场文书
2015年高三年级组工作总结
2015/07/21 职场文书
学习社交礼仪心得体会
2016/01/22 职场文书
Python利用机器学习算法实现垃圾邮件的识别
2021/06/28 Python