基于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实现简单的可逆加密程序实例
Mar 05 Python
Windows下安装python2.7及科学计算套装
Mar 05 Python
Python实现一个简单的验证码程序
Nov 03 Python
python3 字符串/列表/元组(str/list/tuple)相互转换方法及join()函数的使用
Apr 03 Python
python pandas cumsum求累计次数的用法
Jul 29 Python
Python简易版图书管理系统
Aug 12 Python
pytorch模型预测结果与ndarray互转方式
Jan 15 Python
Python基于内置函数type创建新类型
Oct 22 Python
python和C++共享内存传输图像的示例
Oct 27 Python
Django websocket原理及功能实现代码
Nov 14 Python
python中xlrd模块的使用详解
Feb 01 Python
使paramiko库执行命令时在给定的时间强制退出功能的实现
Mar 03 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
海贼王动画变成“真人”后,凯多神还原,雷利太帅了!
2020/04/09 日漫
PHP学习之PHP表达式
2006/10/09 PHP
ubuntu12.04使用c编写php扩展模块教程分享
2013/12/25 PHP
php smarty模板引擎的6个小技巧
2014/04/24 PHP
php mailer类调用远程SMTP服务器发送邮件实现方法
2016/03/04 PHP
Centos 6.5系统下编译安装PHP 7.0.13的方法
2016/12/19 PHP
兼容ie和firefox js关闭代码
2008/12/11 Javascript
基于jquery的监控数据是否发生改变
2011/04/11 Javascript
鼠标经过tr时,改变tr当前背景颜色
2014/01/13 Javascript
JavaScript中localStorage对象存储方式实例分析
2017/01/12 Javascript
react.js 翻页插件实例代码
2017/01/19 Javascript
JS实现的简单拖拽功能示例
2017/03/13 Javascript
jquery将标签元素的高设为屏幕的百分比
2017/04/19 jQuery
vue.js删除动态绑定的radio的指定项
2017/06/02 Javascript
浅谈vue单一组件下动态修改数据时的全部重渲染
2018/03/01 Javascript
详解Js里的for…in和for…of的用法
2019/03/28 Javascript
vue中keep-alive组件的入门使用教程
2019/06/06 Javascript
详解Vue.js中引入图片路径的几种方式
2019/06/17 Javascript
Windows上node.js的多版本管理工具用法实例分析
2019/11/06 Javascript
JS实现滑动插件
2020/01/15 Javascript
[01:00:49]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第二场 1月31日
2021/03/11 DOTA
Python XML RPC服务器端和客户端实例
2014/11/22 Python
Python实现在tkinter中使用matplotlib绘制图形的方法示例
2018/01/18 Python
Python利用正则表达式实现计算器算法思路解析
2018/04/25 Python
python检测主机的连通性并记录到文件的实例
2018/06/21 Python
Python实现串口通信(pyserial)过程解析
2019/09/25 Python
Eastbay官网:美国最大的运动鞋网络零售商
2016/07/27 全球购物
英国复古和经典球衣网站:Vintage Football Shirts
2018/10/05 全球购物
西班牙Polo衫品牌:Polo Club
2020/08/09 全球购物
治超工作实施方案
2014/05/04 职场文书
节约能源标语
2014/06/17 职场文书
2014年国庆晚会主持词
2014/09/19 职场文书
党员自我评价2015
2015/03/03 职场文书
食品药品安全责任书
2015/05/11 职场文书
dubbo服务整合zipkin详解
2021/07/26 Java/Android
JavaScript原型链中函数和对象的理解
2022/06/16 Javascript