8586 括號匹配測試

2021-09-07 01:51:29 字數 2445 閱讀 9741

今天的資料結構學習**和朋友來分享,測試應該能生活!

8586 括號匹配測試

time limit:1000ms  memory limit:1000k

total submit:679 accepted:182

type: program   language: not limited

description

利用棧編寫滿足下列要求的括號匹配檢驗程式:如果表示式中同意包括兩種括號:圓括號和方括號,其巢狀的順序任意,即(())或[()]等為正確的格式,[(]或([())或(()])均為不對的格式。

輸入乙個包括上述括號的表示式,檢驗括號是否配對。

本題給出部分check()函式。要求將check()函式補充完整。並完畢整個程式。

typedef char selemtype;

#include"malloc.h"

#include"stdio.h"

#include"math.h"

#include"process.h" // exit()

#define ok 1

#define error 0

#define true 1

#define false 0

typedef int status; // status是函式的型別,其值是函式結果狀態**。如ok等

#define stack_init_size 10 // 儲存空間初始分配量

#define stackincrement 2 // 儲存空間分配增量

struct sqstack

; // 順序棧

status initstack(sqstack &s)

status stackempty(sqstack s)

status push(sqstack &s,selemtype e)

status pop(sqstack &s,selemtype &e)

void check()

else

}else // 棧空

default: ______________________; // 其他字元不處理,指標向後移

}if(stackempty(s)) // 字串結束時棧空

printf("matching\n");

else

printf("lack of right parenthesis\n");

}}void main()

input

第一行:輸入乙個包括圓括號或方括號、不超過80個字元的表示式串。

output

第一行:若輸入表示式括號匹配。輸出"matching"; 若不匹配,輸出詳細資訊:"isn't matched pairs", 或"lack of left parenthesis"或"lack of right parenthesis"

sample input

8*[3*(35-23)]

sample output

matching

author

yqm答案:

typedef char selemtype;

#include"malloc.h"

#include"stdio.h"

#include"math.h"

#include"stdlib.h" // exit()

#define ok 1

#define error 0

#define true 1

#define false 0

typedef int status; // status是函式的型別,其值是函式結果狀態**,如ok等

#define stack_init_size 10 // 儲存空間初始分配量

#define stackincrement 2 // 儲存空間分配增量

struct sqstack

; // 順序棧

status initstack(sqstack &s)

status stackempty(sqstack s)

status push(sqstack &s,selemtype e)

*(s.top )=e;

s.top ++;

return ok;

} status pop(sqstack &s,selemtype &e)

void check()

else

}else // 棧空

default: p++;; // 其他字元不處理,指標向後移

}if(stackempty(s)) //字串結束時棧空

printf("matching\n");

else

printf("lack of right parenthesis\n");

}}int main()

8586 括號匹配檢驗

今天把資料結構學習的 拿出來和分享一下,應該測試能過!8586 括號匹配檢驗 time limit 1000ms memory limit 1000k total submit 679 accepted 182 type program language not limited descriptio...

列印匹配括號

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

括號匹配(二)

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