基于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使用base64模块进行二进制数据编码详解
Jan 11 Python
Python实现字符串的逆序 C++字符串逆序算法
May 28 Python
简单了解Django ContentType内置组件
Jul 23 Python
python自动分箱,计算woe,iv的实例代码
Nov 22 Python
Python实现分数序列求和
Feb 25 Python
python GUI编程(Tkinter) 创建子窗口及在窗口上用图片绘图实例
Mar 04 Python
对Matlab中共轭、转置和共轭装置的区别说明
May 11 Python
工程师必须了解的LRU缓存淘汰算法以及python实现过程
Oct 15 Python
Python中pass的作用与使用教程
Nov 13 Python
编译 pycaffe时报错:fatal error: numpy/arrayobject.h没有那个文件或目录
Nov 29 Python
Pytorch 中的optimizer使用说明
Mar 03 Python
Python实现猜拳与猜数字游戏的方法详解
Apr 06 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
PHP一些常用的正则表达式字符的一些转换
2008/07/29 PHP
php更新修改excel中的内容实例代码
2014/02/26 PHP
php获取指定范围内最接近数的方法
2015/06/02 PHP
php简单备份与还原MySql的方法
2016/05/09 PHP
PHP查找一列有序数组是否包含某值的方法
2020/02/07 PHP
PHP中isset、empty的用法与区别示例详解
2020/11/05 PHP
JavaScript 无符号右移运算符
2009/04/17 Javascript
jQuery插件AjaxFileUpload实现ajax文件上传
2016/05/05 Javascript
一句jQuery代码实现返回顶部效果(简单实用)
2016/12/28 Javascript
JSON中key动态设置及JSON.parse和JSON.stringify()的区别
2016/12/29 Javascript
jq给页面添加覆盖层遮罩的实例
2017/02/16 Javascript
Node.JS段点续传:Nginx配置文件分段下载功能的实现方法
2018/03/12 Javascript
JavaScript常见事件对象与操作实例总结
2019/01/05 Javascript
微信小程序自定义弹窗实现详解(可通用)
2019/07/04 Javascript
如何自定义微信小程序tabbar上边框的颜色
2019/07/09 Javascript
swiper Scrollbar滚动条组件详解
2019/09/08 Javascript
React实现评论的添加和删除
2020/10/20 Javascript
手动实现把python项目发布为exe可执行程序过程分享
2014/10/23 Python
深入探究Python中变量的拷贝和作用域问题
2015/05/05 Python
python计算auc指标实例
2017/07/13 Python
Python使用sorted对字典的key或value排序
2018/11/15 Python
详解Python数据分析--Pandas知识点
2019/03/23 Python
python 一个figure上显示多个图像的实例
2019/07/08 Python
Python图像处理模块ndimage用法实例分析
2019/09/05 Python
django框架两个使用模板实例
2019/12/11 Python
pytorch中交叉熵损失(nn.CrossEntropyLoss())的计算过程详解
2020/01/02 Python
css3的transition效果和transfor效果示例介绍
2013/10/30 HTML / CSS
BAILEY 44官网:美国制造的女性服装
2019/07/01 全球购物
大学生毕业自我鉴定范文
2013/09/19 职场文书
《再见了,亲人》教学反思
2014/02/26 职场文书
教育技术职业规划范文
2014/03/04 职场文书
大学课外活动总结
2014/07/09 职场文书
小学生感恩父母演讲稿
2014/08/28 职场文书
教师节标语大全
2014/10/07 职场文书
会计工作态度自我评价
2015/03/06 职场文书
Python基础之数据类型知识汇总
2021/05/18 Python