判斷一個字符串中的括號是否成對出現:
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('括號對數錯誤')