棧的應用 表示式括號匹配

2021-09-28 19:34:50 字數 1516 閱讀 4127

時間限制: 1000 ms 記憶體限制: 65536 kb

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

【輸入】

一行資料,即表示式。

【輸出】

一行,即「yes」 或「no」。

【輸入樣例】

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

【輸出樣例】

yes【提示】

【樣例輸入2】

(25+x)(a(a+b+b)@

【樣例輸出2】

no【**】

no

#include

#include

#include

using

namespace std;

string check_parenthese

(string x)

x.erase(0

,1);

}if(count.

size()

==0)return

"yes"

;else

return

"no";}

intmain()

時間限制: 1000 ms 記憶體限制: 65536 kb

1. 題目描述

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

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

輸入乙個只包含圓括號和方括號的字串,判斷字串中的括號是否匹配,匹配就輸出 「ok」 ,不匹配就輸出「wrong」。輸入乙個字串:[([][])],輸出:ok。

【輸入】

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

【輸出】

匹配就輸出 「ok」 ,不匹配就輸出「wrong」。

【輸入樣例】

[(])

【輸出樣例】

wrong

【**】

no2. **

#include

#include

#include

using

namespace std;

bool

check

(string x)

else

return0;

}else

if(x[0]

==']'

)else

return0;

} x.

erase(0

,1);

}if(count.

size()

==0)return1;

else

return0;

}int

main()

表示式括號匹配(棧)

鏈結 假設乙個表示式有英文本母 小寫 運算子 和左右小 圓 括號構成,以 作為表示式的結束符。請編寫乙個程式檢查表示式中的左右圓括號是否匹配,若匹配,則返回 yes 否則返回 no 表示式長度小於255,左圓括號少於20個。一行 表示式 一行 yes 或 no 輸入 1複製 2 x y 1 x 輸出...

棧的應用 字尾表示式 括號匹配

一 字尾表示式 在我們日常生活中所見表示式都是中綴表示式,如 5 3 7 4 2 這中表示式符合我們的思維邏輯,可讀性強,但是不利於計算機的解析。由波蘭邏輯學家j.lukasiewicz發明出字尾表示式,比如上式轉變為字尾表示式 5 3 7 4 2 這種人類難以適應的表達順序,計算機卻很受用。1.計...

棧應用 括號匹配和逆波蘭表示式

stack宣告見前文 括號匹配 匹配串類似 abc 思路 乙個指標遍歷串,如是左括號入棧,右括號則出棧並於當前指標比較是否匹配。再指標指向 0,並且棧為空時才是匹配模式 匹配成功返回1 int match brackets const char string stack s init s 考慮左括號...