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...