自定義資料結構(棧 佇列) 括號匹配

2021-10-10 14:05:57 字數 1069 閱讀 8807

第二題 括號匹配

滿足如下條件的字串稱為括號匹配的字串: 1. 空字串是括號匹配的字串。 2. 若a是括號匹配的串,則(a)、[a]是括號匹配的字串。 3. 若a、b是括號匹配的字串,則ab也是括號匹配的字串。 例如:()、、()、()()都是括號匹配的字串,而][、[(])則不是。 現在對於輸入的字串,判斷它是否是括號匹配的字串。

輸入一行,為乙個僅由「(」、「)」、「[」、「]」組成的非空字串。

輸出一行,「yes」或「no」,分別表示輸入的字串括號匹配或不匹配。

輸入樣例1

()輸出樣例1

yes輸入樣例2

())輸出樣例2

no

這道題主要是考察列表的實現,基本思路為當輸入的是左括號的時候讓其入列表,當輸入的是右括號的時候與左括號進行匹配,如果可以匹配則為yes,不能則為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是美觀的,則...