今天的資料結構學習**和朋友來分享,測試應該能生活!
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...