第二題 括號匹配
滿足如下條件的字串稱為括號匹配的字串: 1. 空字串是括號匹配的字串。 2. 若a是括號匹配的串,則(a)、[a]是括號匹配的字串。 3. 若a、b是括號匹配的字串,則ab也是括號匹配的字串。 例如:()、、()、()()都是括號匹配的字串,而][、[(])則不是。 現在對於輸入的字串,判斷它是否是括號匹配的字串。
輸入一行,為乙個僅由「(」、「)」、「[」、「]」組成的非空字串。
輸出一行,「yes」或「no」,分別表示輸入的字串括號匹配或不匹配。
輸入樣例1這道題主要是考察列表的實現,基本思路為當輸入的是左括號的時候讓其入列表,當輸入的是右括號的時候與左括號進行匹配,如果可以匹配則為yes,不能則為no()輸出樣例1
yes輸入樣例2
())輸出樣例2
no
a=
input()
b=[]state=
1#乙個邏輯變數,進行判斷
for i in a:
if i ==
'('or i ==
'['or i =='':
ifnot b:
#即如果b是空的,則邏輯變數為0,也就是無法匹配
state=
0else
: bottom=b[
len(b)-1
]#和輸入中最後乙個左括號匹配
if i ==
')'and bottom ==
'('or i ==
']'and bottom ==
'['or i ==
'}'and bottom ==
'{':
b.pop(
)#匹配完了就可以拜拜了
else
: state=0if
not b and state==1:
print
("yes"
)else
:print
("no"
)
自定義資料結構(棧 佇列) 最長括號匹配
第三題 最長括號匹配 滿足如下條件的字串稱為括號匹配的字串 1.空字串是括號匹配的字串。2.若a是括號匹配的串,則 a a 是括號匹配的字串。3.若a b是括號匹配的字串,則ab也是括號匹配的字串。例如 都是括號匹配的字串,而 則不是。現在對乙個由 括號組成的字串,求出其中最長的括號匹配子串。字串a...
資料結構 自定義佇列
用鍊錶建立佇列 public class linkqueueimplements queue public node e e public node override public string tostring private node head private node tail private...
資料結構 棧與佇列(一) 括號匹配
candela是一名漫畫家,她有乙個奇特的愛好,就是在紙上畫括號。這一天,剛剛起床的candela畫了一排括號序列,其中包含小括號 中括號和大括號 總長度為n。這排隨意繪製的括號序列顯得雜亂無章,於是candela定義了什麼樣的括號序列是美觀的 1 空的括號序列是美觀的 2 若括號序列a是美觀的,則...