千家信息网

Python嵌套方法怎么使用

发表于:2024-12-13 作者:千家信息网编辑
千家信息网最后更新 2024年12月13日,本篇内容主要讲解"Python嵌套方法怎么使用",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Python嵌套方法怎么使用"吧!题目:给出一个字符串,其中只
千家信息网最后更新 2024年12月13日Python嵌套方法怎么使用

本篇内容主要讲解"Python嵌套方法怎么使用",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Python嵌套方法怎么使用"吧!

题目:

给出一个字符串,其中只包含括号(大中小括号 "()[]{}" ),括号可以任意嵌套。如果同样的左右括号成对出现并且嵌套正确,那么认为它是匹配的。例如:

1、() -> TRUE (匹配)

2、[()] -> TRUE (匹配,括号可以嵌套)

3、()() -> TRUE (匹配,括号可以并列排列)

4、({}([])) -> TRUE (匹配,括号可以任意嵌套,大括号不必在外)

5、) -> FALSE (不匹配,缺少左括号)

6、(} -> FALSE (不匹配,左右括号不一样)

7、{)(} -> FALSE (不匹配,左右括号相反)


思路分析
  • 由于嵌套是随意的,因此不能像剥洋葱一样从最外层剥

  • 不管如何嵌套,总会有至少一对括号里面是不嵌套任何字符串的

  • 遇到一个 ( 时,不可能去找与它对应的 ) ,因为 ) 很可能有多个,哪个是与之对应的呢,这个思路非常麻烦


有一种名为"栈"的数据结构,它的特点是先进后出,而list就可以伪装成一个栈,利用先进后出的特性,将左右两个括号抵消掉,文字已经不能解释清楚了,还是上代码吧


示例代码

#coding=utf-8
str_value = '({}([]))'
lst = list(str_value)
lst_compare = []
b_format = True
for item in lst:
if item == '(' or item == '{' or item == '[':
lst_compare.append(item)

if len(lst_compare) == 0:
b_format = False
break

if item == ')':
if lst_compare[-1] == '(':
lst_compare.pop()
else:
b_format = False

if item == ']':
if lst_compare[-1] == '[':
lst_compare.pop()
else:
b_format = False

if item == '}':
if lst_compare[-1] == '{':
lst_compare.pop()
else:
b_format = False



if not len(lst_compare) == 0:
b_format = False


if b_format:
print u'格式正确'
else:
print u'格式错误'




代码解析
  • 首先要明白第二行所使用的lis方法的作用,它将字符串转成一个list

  • 对lst进行遍历,将遍历得到的各种左括号放入st_compare 中

  • 在对lst进行遍历过程中,如果遇到一种右括号,则和st_compare中末尾的元素比较,判断他们是不是一对,如果是一对,则是用pop方法把st_compare末尾的元素弹出来,如果不是,就说明括号不是成对出现的

  • 如果最终st_compare的长度不为0,就说明有一些左括号是没有被抵消掉的,格式必然不正确

到此,相信大家对"Python嵌套方法怎么使用"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

0