基于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 26 Python
深入理解Python中装饰器的用法
Jun 28 Python
Python发送http请求解析返回json的实例
Mar 26 Python
Python爬虫小技巧之伪造随机的User-Agent
Sep 13 Python
numpy 对矩阵中Nan的处理:采用平均值的方法
Oct 30 Python
Python3爬虫教程之利用Python实现发送天气预报邮件
Dec 16 Python
浅谈python 中类属性共享的问题
Jul 02 Python
Python3打包exe代码2种方法实例解析
Feb 17 Python
Python小白垃圾回收机制入门
Jun 09 Python
基于opencv的selenium滑动验证码的实现
Jul 24 Python
python软件测试Jmeter性能测试JDBC Request(结合数据库)的使用详解
Jan 26 Python
健身房被搭讪?用python写了个小米计时器助人为乐
Jun 08 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
六酷社区论坛HOME页清新格调免费版 下载
2007/03/07 PHP
Cannot modify header information错误解决方法
2008/10/08 PHP
PHP生成sitemap.xml地图函数
2013/11/13 PHP
PHP中变量引用与变量销毁机制分析
2014/11/15 PHP
PHP的RSA加密解密方法以及开发接口使用
2018/02/11 PHP
CL vs ForZe BO5 第五场 2.13
2021/03/10 DOTA
Jquery实现仿新浪微博获取文本框能输入的字数代码
2013/02/22 Javascript
Ajax局部更新导致JS事件重复触发问题的解决方法
2014/10/14 Javascript
Javascript访问器属性实例分析
2014/12/30 Javascript
AngularJs解决跨域问题案例详解(简单方法)
2016/05/19 Javascript
JS前端开发判断是否是手机端并跳转操作(小结)
2017/02/05 Javascript
vue环形进度条组件实例应用
2018/10/10 Javascript
Mint UI实现A-Z字母排序的城市选择列表
2018/12/28 Javascript
js实现图片跟随鼠标移动效果
2019/10/16 Javascript
Python strip lstrip rstrip使用方法
2008/09/06 Python
Python处理XML格式数据的方法详解
2017/03/21 Python
Django自定义manage命令实例代码
2018/02/11 Python
TensorFlow实现非线性支持向量机的实现方法
2018/04/28 Python
python快速排序的实现及运行时间比较
2019/11/22 Python
Python3操作读写CSV文件使用包过程解析
2020/04/10 Python
Pandas实现一列数据分隔为两列
2020/05/18 Python
如何验证python安装成功
2020/07/06 Python
Python判断远程服务器上Excel文件是否被人打开的方法
2020/07/13 Python
分享一个python的aes加密代码
2020/12/22 Python
CSS3悬停效果案例应用
2012/11/21 HTML / CSS
CSS3效果:自定义“W”形运行轨迹实例
2017/03/29 HTML / CSS
从一次项目重构说起CSS3自定义变量在项目的使用方法
2021/03/01 HTML / CSS
HTML5输入框下拉菜单功能的示例代码
2020/09/08 HTML / CSS
奥兰多迪士尼门票折扣:Undercover Tourist
2018/07/09 全球购物
医药大学生求职简历的自我评价
2013/10/17 职场文书
kfc实习自我鉴定
2013/12/14 职场文书
聚美优品陈欧广告词
2014/03/14 职场文书
党组织公开承诺书
2014/03/29 职场文书
县委班子四风对照检查材料思想汇报
2014/09/29 职场文书
房产销售独家委托书范本
2014/10/01 职场文书
工作表扬信范文
2015/01/17 职场文书