XDOJ括號匹配

2021-10-01 10:57:32 字數 879 閱讀 1269

類別

字串處理

時間限制

2s記憶體限制

1000kb

問題描述

表示式中的合法括號為「(」、「)」、「[」、「]」、「」,這三種括號可以按照任意的次序巢狀使用。

請寫乙個程式,判斷給定表示式中的括號是否匹配,既左右括號順序和數量都匹配。

輸入說明

輸入為乙個表示式字串,長度不超過50。

輸出說明

對輸入的表示式,若其中的括號是匹配的,則輸出「yes」,否則輸出「no」。

輸入樣例

樣例1輸入

[(d+f)*{}2]

樣例2輸入

[(2+3))

輸出樣例

樣例1輸出

yes樣例2輸出

no

#include

#include

intmain()

}else

if(str[i]

==']')}

else

if(str[i]

=='}')}

if(flag==1)

break;}

if(flag==1)

printf

("no");

else

if(flag==

0&&a==

0&&b==

0&&c==0)

printf

("yes");

else

printf

("no");

}

–此處只考慮了括號匹配

但是沒有考慮括號的正確順序

比如] 這樣在這題裡過了,但是實際上是不對的

想要排除這種情況,就要用棧來實現。

XDOJ1133 括號匹配

description 給你乙個字串,只含有 和 然後你判斷一下是否合法 input 有多組資料,每組資料一行字串s s 100 如題目所述 output 如果合法則輸出yes,否則輸出no。sample input sample output yesno解題思路 這主要考察棧這種資料結構,這裡我沒...

列印匹配括號

開始抽空做一些演算法題,留下記錄作為菜鳥的成長見證吧。這道題來自於cracking the coding interview,要求列印n對括號的所有可能匹配。我採用遞迴來做,這樣編寫比較方便而且容易弄懂,但用迭代應該會效率快不少而且遞迴一定能轉換成迭代吧,以後有空研究下 如下 include std...

括號匹配(二)

時間限制 1000 ms 記憶體限制 65535 kb 難度 6 描述 給你乙個字串,裡面只包含 四種符號,請問你需要至少新增多少個括號才能使這些括號匹配起來。如 是匹配的 是匹配的 是不匹配的 是不匹配的 輸入第一行輸入乙個正整數n,表示測試資料組數 n 10 每組測試資料都只有一行,是乙個字串s...