基于python判斷字符串括號(hào)是否閉合{}[]()
前言
經(jīng)典面試題: 判斷一個(gè)字符串里面的括號(hào)是否閉合,如:{{()}} 就是一個(gè)閉合的字符串。
{{()}]} 這個(gè)里面 ([)] 括號(hào)不對(duì)稱,這種就是不閉合。
python判斷閉合
解決基本思路:
先把左括號(hào)添加到一個(gè)列表里面,遇到右括號(hào)就彈出列表里面的最后一個(gè)存放進(jìn)去的。
對(duì)比右括號(hào)和彈出的左括號(hào)是否對(duì)稱,如果是就繼續(xù)依次對(duì)比。
最后判斷列表里面是否有多余的左括號(hào),如果列表為空,說(shuō)明全部被彈出,那就是閉合的
最后考慮下左括號(hào)和右括號(hào)有多余的情況
代碼如下
def is_str_close(a):
'''
遇到問(wèn)題沒(méi)人解答?小編創(chuàng)建了一個(gè)Python學(xué)習(xí)交流QQ群:778463939
尋找有志同道合的小伙伴,互幫互助,群 里還有不錯(cuò)的視頻學(xué)習(xí)教程和PDF電子書(shū)!
判斷括號(hào)是否閉合
'''
b = []
flag = True
for i in a:
if i == "{" or i == "[" or i == "(":
# 左邊的括號(hào)加進(jìn)去
b.append(i)
elif i == "}":
# 遇到右邊括號(hào)}彈出最后面的一個(gè){
if len(b) == 0 or b.pop() != "{":
return False
elif i == "]":
# 遇到右邊括號(hào)]彈出最后面的一個(gè)[
if len(b) == 0 or b.pop() != "[":
return False
elif i == ")":
# 遇到右邊括號(hào))彈出最后面的一個(gè)(
if len(b) == 0 or b.pop() != "(":
return False
# 判斷最后列表b里面的左邊括號(hào)是否全部被彈出
if len(b) != 0:
flag = False
return flag
if __name__ == '__main__':
a = "{[{()}]()}"
print(is_str_close(a))
b = "({[{()}]()}"
print(is_str_close(b))
c = "{[{()}]()}]"
print(is_str_close(c))
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
如何解決Python中tqdm和zip一起用進(jìn)度條不顯示問(wèn)題
這篇文章主要介紹了如何解決Python中tqdm和zip一起用進(jìn)度條不顯示問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08
Python定義一個(gè)跨越多行的字符串的多種方法小結(jié)
今天小編就為大家分享一篇Python定義一個(gè)跨越多行的字符串的多種方法小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07
淺談python 線程池threadpool之實(shí)現(xiàn)
這篇文章主要介紹了淺談python 線程池threadpool之實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-11-11
Python實(shí)現(xiàn)生成簡(jiǎn)單的Makefile文件代碼示例
這篇文章主要介紹了Python實(shí)現(xiàn)生成簡(jiǎn)單的Makefile文件代碼示例,本文給出了兩段實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-03-03
python實(shí)現(xiàn)0到1之間的隨機(jī)數(shù)方式
這篇文章主要介紹了python實(shí)現(xiàn)0到1之間的隨機(jī)數(shù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07
Python Opencv實(shí)戰(zhàn)之印章提取的實(shí)現(xiàn)
很多時(shí)候我們需要電子版的章,但有些同學(xué)并不會(huì)通過(guò)Photoshop摳圖獲取。因此本文將利用Python OpenCV來(lái)實(shí)現(xiàn)印章的提取,感興趣的可以了解一下2022-03-03
Python實(shí)現(xiàn)讀取文本文件并轉(zhuǎn)換為pdf
這篇文章主要為大家詳細(xì)介紹了如何使用Python簡(jiǎn)便快捷地完成TXT文件到PDF文檔的轉(zhuǎn)換,滿足多樣化的文檔處理需求,感興趣的小伙伴可以參考下2024-04-04

