本篇內容主要講解“如何解決括號匹配問題”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“如何解決括號匹配問題”吧!
成都創新互聯公司專注于企業成都營銷網站建設、網站重做改版、貴溪網站定制設計、自適應品牌網站建設、H5技術、商城網站定制開發、集團公司官網建設、成都外貿網站建設公司、高端網站制作、響應式網頁設計等建站業務,價格優惠性價比高,為貴溪等各大城市提供網站開發制作服務。
問題描述
假設我們有一個復雜的字符串,里邊包含了多種括號的嵌套,如下圖:
這時候人為地用肉眼去判斷其中的括號是否匹配是一件非常麻煩的事,不僅耗時耗力,而且準確率極低。那么,有什么方法可以幫助我們高效地進行判斷呢,根據棧的特點,我們可以很容易地想到利用python中的list來模擬棧結構進行判斷。
示例:
輸入:((ABCD(x)
輸出:False
輸入:{[(rttyy)]sss}
輸出:True
解決方案
我們用棧來保存未匹配的左括號,利用for循環從左到右依次遍歷字符串的每個元素。當遍歷到左括號時,則將其壓入棧中;當遍歷到右括號時,從棧頂取出一個左括號。如果能夠匹配,則繼續遍歷剩下的字符串。如果遍歷的過程中,遇到不能配對的右括號,或者棧中沒有數據,則說明該字符串的括號匹配有誤,直接返回False。當所有的括號都掃描完成之后,如果棧為空則說明該字符串的括號全部匹配正確,返回True;如果棧不為空,說明有未匹配的左括號,則返回False。
# coding:utf-8 def BracketMatch(str): #把左括號與右括號分別放在一組 LeftBrackets = '{[(' RightBrackets = '}])' #根據括號的匹配關系建立一個字典,右括號當key,左括號當value Brackets = {'}':'{',']':'[',')':'('} # 建立一個棧,初始值為空列表 Stack = [ ] for char in (str): if char in LeftBrackets: Stack.append(char) if char in RightBrackets: if Stack == [ ]: return False else: if Brackets[char] == Stack[-1]: Stack.pop() else: return False if Stack == [ ]: return True else: return False str = input('請輸入字符:') print(BracketMatch(str)) |
運行結果如下圖:
到此,相信大家對“如何解決括號匹配問題”有了更深的了解,不妨來實際操作一番吧!這里是創新互聯網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
本文題目:如何解決括號匹配問題
標題URL:http://vcdvsql.cn/article20/iigpco.html
成都網站建設公司_創新互聯,為您提供定制開發、營銷型網站建設、企業建站、外貿網站建設、定制網站、商城網站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯