棧的應用 括號匹配

2021-09-27 09:41:10 字數 1511 閱讀 7968

description

在實際程式設計中,我們經常會巢狀使用括號,如「{}」、「」 、 「()」,如果括號太多,可能會出現括號不匹配的情況,比如「(as))」、「)」等。現希望你們編寫乙個程式,判斷輸入的一段語句中的括號是否匹配。必須使用棧實現這個功能。

input

字串s,s是由{}、、()以及數字字母組成的字串。

output

若括號使用規範且匹配,輸出「true」;否則輸出「false」。

sample input 1

4print(abc[0]+』this is a {}』)

sample output 1

true

sample input 2

「(f)[(g)」

sample output 2

false

sample input 3

0(f)[(g)]96

sample output 3

true

sample input 4

sample output 4

false

sample input 5

88778print(){}{}})

sample output 5

false

coding:

要點1:不需要的字母不入棧即可

要點2:處理完後棧應該為空,否則需返回false

def

parenthesis_matching

(temp_list)

:for i in

range

(len

(temp_list)):

temp_ele = temp_list[i]

if temp_ele =='':

if stack.pop()!=

'{':

return

false

elif temp_ele ==

']':

if stack.pop()!=

'[':

return

false

elif temp_ele ==

')':

if stack.pop()!=

'(':

return

false

iflen

(stack)==0

:return

true

else

:return

false

defoutput

(pending_list)

:if parenthesis_matching(pending_list)

:print

("true"

)else

:print

("false"

)stack =

needed_list =

input()

output(needed_list)

棧應用 括號匹配

假設表示式中允許包含兩種括號 圓括號和方括號。編寫乙個演算法判斷表示式中的括號是否正確配對。由括號構成的字串,包含 如果匹配輸出yes,否則輸出no。複製 yes解決思想 拿到字串後,遍歷字串,當遇到左括號就進棧,右括號棧頂元素出棧,如果括號是匹配的,則最終棧空。include includetyp...

棧的應用 括號匹配

3.1棧的應用 括號匹配 一 實驗目的1 掌握堆疊特殊線性表的儲存方式的基本操作方法。2 掌握堆疊後進先出運算原則在解決實際問題中的應用。3 掌握使用棧的原理來解決表示式中的括號配對問題。二 實驗內容 假設乙個算術表示式中包含圓括弧 方括弧三種型別的括弧,編寫乙個程式用於判別表示式中括弧是否正確配對...

棧的應用(括號匹配)

棧的應用 括號匹配有兩種,一種是只用匹配一種型別的括號的,還有一種是要多種都匹配 棧的應用,括號的匹配問題 簡單的括號匹配 只有一中型別的括號 include include include include using namespace std 初始化棧 bool match string str...