1. 程式人生 > >棧之各種括號匹配

棧之各種括號匹配

1.【題目描述】

假設一個表示式有英文字母(小寫)、運算子(+,—,*,/)和左右小(圓)括號構成,以“@”作為表示式的結束符。請編寫一個程式檢查表示式中的左右圓括號是否匹配,若匹配,則返回“YES”;否則返回“NO”。表示式長度小於255,左圓括號少於20個。

【輸入】

一行資料,即表示式。

【輸出】

一行,即“YES” 或“NO”。

【輸入樣例】

2*(x+y)/(1-x)@

【輸出樣例】

YES



先來一個簡單的吧!

2.【題目描述】

假設表示式中允許包含兩種括號:圓括號和方括號,其巢狀的順序隨意,如([ ]())或[([ ][ ])]等為正確的匹配,[( ])或([ ]( )或 ( ( ) ) )均為錯誤的匹配。

現在的問題是,要求檢驗一個給定表示式中的括弧是否正確匹配?

輸入一個只包含圓括號和方括號的字串,判斷字串中的括號是否匹配,匹配就輸出 “OK” ,不匹配就輸出“Wrong”。輸入一個字串:[([][])],輸出:OK。

【輸入】

輸入僅一行字元(字元個數小於255)。

【輸出】

匹配就輸出 “OK” ,不匹配就輸出“Wrong”。

【輸入樣例】

[(])

【輸出樣例】

Wrong
一樣的型別吧,一樣的套路。
這道題一開始用了一堆堆的if
後來想了想可以套一下。
結果就出來了

3.【題目描述】

字串中只含有括號 (),[],<>,{},判斷輸入的字串中括號是否匹配。如果括號有互相包含的形式,從內到外必須是<>,(),[],{},例如。輸入: [()] 輸出:YES,而輸入([]),([)]都應該輸出NO。

【輸入】

第一行為一個整數n,表示以下有多少個由括好組成的字串。接下來的n行,每行都是一個由括號組成的長度不超過255的字串。

【輸出】

在輸出檔案中有n行,每行都是YES或NO。

【輸入樣例】

5
{}{}<><>()()[][]
{{}}{{}}<<>><<>>(())(())[[]][[]]
{{}}{{}}<<>><<>>(())(())[[]][[]]
{<>}{[]}<<<>><<>>>((<>))(())[[(<>)]][[]]
><}{{[]}<<<>><<>>>((<>))(())[[(<>)]][[]]

【輸出樣例】

YES
YES
YES
YES
NO
這道題還是一樣的型別,但不知道為啥總是過不去。
待我思索思索,再來。。。。。。