演算法:假設表示式中包含兩種括號:圓括號、方括號和大擴號。檢驗括號是否匹配可以用堆疊來實現當遇到 ( 或 [或時出棧進行匹配檢驗,如果出現不匹配的情況立即結束,否則繼續取下乙個字元。如果沒有遇到不匹配的情況,最後判斷棧是否為空,棧為空,括號匹配,否則不匹配
源**:
#include #include #include #define true 1#define false 0
#define ok 1
#define error 0
#define overflow -2
#define null 0
typedef int status;
#define stack_init_size 100
#define stackincrement 10
typedef char selemtype;
typedef structsqstack;
status initstack(sqstack &s)//initstack
status push(sqstack &s, selemtype e)
*s.top++=e; //top指向待插入位置
return(ok);
}//push
status pop(sqstack &s,selemtype &e)
status stackempty(sqstack s)//stackempty
status match(char *str ) ':
if(stackempty(s))
else}
case ']':
if(stackempty(s))
else}
case ')':
if(stackempty(s))
else}
default :break;
}//switch
if(count==0&&stackempty(s))
printf("the string is match!\n");
else printf("the string is not match!\n");
return ok; }}
void main()
寒假集訓三,括號匹配問題
給定一串由 和組成的字串。如果我們規定以下的字串是合法的字串 1 空串是合法的字串 2 如果a b都是合法的,那麼ab也是合法的字串。3 如果a是合法的,那麼 a 和 a 都是合法的字串。也就是說,所有左右括號必須配對,且不能 切開括號 如 或 輸入輸入先是乙個正整數n,代表有n個字串。接下來是n行...
漢語中「三個三個的,你認識多少?」
三個金念鑫 x n 三個水念淼 mi o 三個火念焱 y n 三個土念垚 y o 三個牛念犇 b n 三個手念掱 p 三個目念瞐 m 三個田念畾 l i 三個馬念驫 bi o 三個羊念羴 sh n 三個犬念猋 bi o 三個鹿念麤 c 三個魚念鱻 xi n 三個貝念贔 b 三個力念劦 lie 三個毛...
整數從右到左正則匹配 隔三個加乙個逗號
我自己開始的時候,寫的以下 但是不行 43123456789 replace d g,1 2 43,123456789 43123456789 replace d g,1 2 3 43,123456789 789 2中,開始一直沒有明白為什麼有問題,現在理解了。2的正則是 全域性匹配 多個3個數字 ...