【題目描述】
假設表示式中允許包含兩種括號:圓括號和方括號,其巢狀的順序隨意,如([ ]())或[([ ][ ])]等為正確的匹配,[( ])或([ ]( )或 ( ( ) ) )均為錯誤的匹配。
現在的問題是,要求檢驗乙個給定表示式中的括弧是否正確匹配?
輸入乙個只包含圓括號和方括號的字串,判斷字串中的括號是否匹配,匹配就輸出 「ok」 ,不匹配就輸出「wrong」。輸入乙個字串:[([][])],輸出:ok。
【輸入】
輸入僅一行字元(字元個數小於255)。
【輸出】
匹配就輸出 「ok」 ,不匹配就輸出「wrong」。
【輸入樣例】
[(])
【輸出樣例】
wrong
【解題思路】
這道題用模擬棧,就可以輕鬆解決。
【源**】
1 #include2 #include3 #include4using
namespace
std;
5char str[10000];6
int stack[1000];//
用1代表(,2代表),3代表[,4代表]
7int
main()825
else
if(str[i]=='
[')//
記錄左方括號
26 top++,stack[top]=3;27
else
if(str[i]=='
]')//
記錄右方括號
2836}37
if(top==-1
)38 printf("ok"
);39
else
40 printf("
wrong");
41return0;
42 }
括弧匹配檢驗(棧)
description 假設表示式中允許包含兩種括號 圓括號和方括號,其巢狀的順序隨意,如 或 等為正確的匹配,或 或 均為錯誤的匹配。現在的問題是,要求檢驗乙個給定表示式中的括弧是否正確匹配?輸入乙個只包含圓括號和方括號的字串,判斷字串中的括號是否匹配,匹配就輸出 ok 不匹配就輸出 wrong ...
《資訊學奧賽》1354 括弧匹配檢驗
假設表示式中允許包含兩種括號 圓括號和方括號,其巢狀的順序隨意,如 或 等為正確的匹配,或 或 均為錯誤的匹配。現在的問題是,要求檢驗乙個給定表示式中的括弧是否正確匹配?輸入乙個只包含圓括號和方括號的字串,判斷字串中的括號是否匹配,匹配就輸出 ok 不匹配就輸出 wrong 輸入乙個字串 輸出 ok...
括弧匹配檢驗 UPC
假設表示式中允許包含兩種括號 圓括號和方括號,其巢狀的順序隨意,如 或 等為正確的匹配,或 或 均為錯誤的匹配。現在的問題是,要求檢驗乙個給定表示式中的括弧是否正確匹配?輸入乙個只包含圓括號和方括號的字串,判斷字串中的括號是否匹配,匹配就輸出 ok 不匹配就輸出 wrong 輸入乙個字串 輸出 ok...