臺前做網(wǎng)站的公司廣告文案
給定一個(gè)只包含小寫字母的字符串,判斷該字符串中的括號是否閉合,如果每個(gè)左括號都有對應(yīng)的右括號,并且括號的嵌套順序正確,那么括號就能正確閉合。
否則,括號不能正確閉合,字符串中括號僅限于 "(" 和 ")"
輸入字符串:"((()))" 輸出結(jié)果:正常閉合符合語法規(guī)范
輸入字符串:"())(" 輸出結(jié)果:不能正常閉合,不符合語法規(guī)范
'''
步驟:
如果遇到左括號"(",則將其壓入棧中。
如果遇到右括號")",則彈出棧頂元素,判斷是否與當(dāng)前右括號匹配。
如果棧為空或者棧頂元素不是左括號"(",則返回False。
如果匹配成功,則繼續(xù)下一輪循環(huán)。
最后,如果棧為空,則表示所有括號都正確閉合,返回True;否則返回False
''''
stack = '' # 字符串模擬棧
# 測試樣例
s = "((aaa(abcdef)ccc))"
# s = "())("
for char in s:if char == "(":stack += charelif char ==')':if len(stack)==0 or stack[-1] !='(':print('不能正常閉合,不符合語法規(guī)范!')breakstack=stack[:-1] # 表示最后一個(gè)元素不要了! 切片不包含最后一個(gè)元素
else:if len(stack)==0:print('正常閉合,符合語法規(guī)范!')else:print('不能正常閉合,不符合語法規(guī)范!')