zoukankan      html  css  js  c++  java
  • python面试题--判断一个字符串中的括号“(”“)”是否成对出现

    判断一个字符串中的括号是否成对出现:

    import heapq
    import collections
    
    a='())(((aadg)(jnvh))'
    heap=[]
    l=collections.Counter(a)
    #如果左括号和右括号出现次数不一致,直接返回不一致
    if l['(']==l[')']:
        print(a.find('('),a.find(')'))
        # 如果第一个右括号在第一个左括号后,最后一个优酷号在左括号后,满足条件
        if a.find('(')<a.find(')') and a.rfind('(') > a.rfind(')'):
            for i in a:
                # 如果是左括号,压栈,把左括号压到栈中
                if i=='(':
                   heapq.heappush(heap,i)
                   print(heap)
                # 如果是右括号并且栈里不是空,弹栈
                elif i==')' and len(heap)>0:
                   heapq.heappop(heap)
                   print(heap)
                # 如果是右括号并且栈里是空,括号位置有问题
                elif i==')' and len(heap)==0:
                    print('括号不是成对出现')
                #其他字符直接过
                else:
                    pass
    
        else:
            print('括号位置不对')
    else:
        print('括号对数错误')
  • 相关阅读:
    操作符的详解
    一切皆对象
    对象导论
    mysql
    bootstrap学习
    素数筛选法
    python的urllib库
    是做应用还是搞算法?
    金山词霸笔试题目笔记
    双十一,更是技术的战争~~
  • 原文地址:https://www.cnblogs.com/dashouzhang/p/14109505.html
Copyright © 2011-2022 走看看