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('括号对数错误')
  • 相关阅读:
    OSGi for C/C++
    Tizen NPPlugin开发
    Trove4j
    [Tizen]某些目录下存放的东西
    OpenMobile's Application Compatibility Layer (ACL)
    params
    页面无法访问
    websevice 服务前台和后台
    SQL 创建存储过程
    UpdatePanel
  • 原文地址:https://www.cnblogs.com/dashouzhang/p/14109505.html
Copyright © 2011-2022 走看看