Python嵌套方法怎么使用

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

创新互联主要从事网站设计、网站制作、网页设计、企业做网站、公司建网站等业务。立足成都服务宣汉,10余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575

题目:

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

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嵌套方法怎么使用”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!


当前标题:Python嵌套方法怎么使用
当前路径:http://scyanting.com/article/jephpe.html