日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

栈应用之 括号匹配问题(Python 版)

發(fā)布時(shí)間:2025/4/9 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 栈应用之 括号匹配问题(Python 版) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

棧應(yīng)用之 括號匹配問題(Python 版)

檢查括號是否閉合

  • 循序掃描被檢查正文(一個(gè)字符)里的一個(gè)個(gè)字符
  • 檢查中跳過無關(guān)字符(所有非括號字符都與當(dāng)前處理無關(guān))
  • 遇到開括號將其壓入棧
  • 遇到閉括號時(shí)彈出當(dāng)時(shí)的棧頂元素與之匹配
  • 如果匹配成功則繼續(xù),發(fā)現(xiàn)匹配失敗時(shí)則以檢查失敗結(jié)束?
1 def check_parens(text) : 2 # 括號匹配檢查函數(shù),text 是被檢查的正文串 3 parens = "(){}[]" 4 open_parens = "({[" 5 opposite = {")":"(", "}":"{", "]":"["} 6 7 def parentheses(text) : 8 # 括號生成器,每次調(diào)用返回text里的下一括號及其位置 9 i.text_len = 0,len(text) 10 while True : 11 while i < text_len and text[i] not in parens : 12 i += 1 13 if i >= text_len : 14 return 15 yield text[i],i 16 i += 1 17 18 st = SStack() # 創(chuàng)建棧 st 19 20 for pr , i in parentheses(text) : # 對text里各括號和位置迭代 21 if pr in open_parens : # 開括號,壓棧并繼續(xù) 22 st.push(pr) 23 elif st.pop() != opposite[pr] : # 閉括號 若匹配失敗就退出 24 print("Unmatching is found at ",i,"for",pr) 25 return False 26 # else : 匹配成功什么也不做

?

轉(zhuǎn)載于:https://www.cnblogs.com/zlsgh/p/9579941.html

總結(jié)

以上是生活随笔為你收集整理的栈应用之 括号匹配问题(Python 版)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。