candela是一名漫畫家,她有乙個奇特的愛好,就是在紙上畫括號。這一天,剛剛起床的candela畫了一排括號序列,其中包含小括號()、中括號和大括號{},總長度為n。這排隨意繪製的括號序列顯得雜亂無章,於是candela定義了什麼樣的括號序列是美觀的:1.1輸入(1) 空的括號序列是美觀的;
(2) 若括號序列a是美觀的,則括號序列(a)、[a]、也是美觀的;
(3)若括號序列a、b都是美觀的,則括號序列ab也是美觀的; 例如 ()() 是美觀的括號序列,而 )(]( 則不是。
現在candela想知道她畫出的括號序列是不是美觀的。你能幫幫她嗎?
乙個括號序列,長度不超過10000。1.2輸出
如果它是美觀的,輸出yes,否則輸出no。1.3樣例輸入和輸出
樣例輸入c( ) ( )
樣例輸出
yes
#include
#include
#include
typedef
char elemtype;
typedef
struct
stack;
//初始化乙個空棧。空棧擁有10000個元素的空間,棧頂值為 -1
void
init
(stack *pstack)
//把x入棧
void
push
(stack *pstack,elemtype x)
free
(pstack->base)
; pstack->base=b;
}//如果輸入的元素沒有超出棧的最大限制,那麼將元素壓棧
pstack->base[
++pstack->top]
=x;}
//返回當前棧頂元素的值
elemtype top
(stack *pstack)
//當前棧頂元素出棧
void
pop(stack *pstack)
//判斷是否棧空,若空則返回 true,否則返回 false
bool empty
(stack *pstack)
//清空分配給棧的儲存空間
void
destroy
(stack *pstack)
intmain
(void)'
)else
'&&pstack->base[pstack->top]=='
else}}
}if(flag==true)
destroy
(pstack)
;return0;
}
這道題雖然說什麼美觀的括號,但其實就是利用棧實現括號的匹配,那我們首先就要搞清楚括號匹配和不匹配的型別:
1.匹配的型別就一種,我們利用棧的先進後出的特性,對括號從最內側進行匹配,如果到最後乙個元素輸入後,整個棧中沒有元素(匹配後元素就直接出棧刪除)的話,就是匹配的,輸出「yes」。
2.不匹配的型別有三種
2.1左括號多餘,也就是說在輸入資料結束後,最後乙個元素是括號的左半部分「(」,「」,「]」。那麼這個時候就是輸出「no」。
2.3括號不匹配,也就是說在輸入資料結束後,棧內元素的括號不能相互匹配,例如:「(}」,「])或()等均為正確的格式,而)}或均為不正確的格式.
輸入一串括號
如果輸入的右括號多餘,輸出:extra right brackets
如果輸入的左括號多餘,,輸出:extra leftbrackets
如果輸入的括號不匹配,輸出:brackets not match
如果輸入的括號匹配,輸出:brackets match
輸入
樣例輸出
brackets not match這個時候我們只需要把上面的**稍微改一下輸出就可以了
c
#include
#include
#include
typedef
char elemtype;
typedef
struct
stack;
void
init
(stack *pstack)
//初始化乙個空棧。空棧擁有10個元素的空間,棧頂值為 -1
void
push
(stack *pstack, elemtype x)
//把 x 入棧
free
(pstack->base)
; pstack->base = b;
} pstack->base[
++pstack->top]
= x;
}elemtype top
(stack *pstack)
//返回當前棧頂元素的值
void
pop(stack *pstack)
//當前棧頂元素出棧
bool empty
(stack *pstack)
//如果棧空,則返回 true,否則返回 false
void
destroy
(stack *pstack)
//清空分配給棧的儲存空間
intmain
(void)'
)else
'&&pstack->base[pstack->top]=='
else}}
}if(flag == true)
destroy
(pstack)
;return0;
}
資料結構實驗之棧與佇列四 括號匹配
time limit 1000ms memory limit 65536kb submit statistic problem description 給你一串字元,不超過50個字元,可能包括括號 數字 字母 標點符號 空格,你的任務是檢查這一串字元中的 是否匹配。input 輸入資料有多組,處理到...
資料結構實驗之棧與佇列四 括號匹配
problem description 給你一串字元,不超過50個字元,可能包括括號 數字 字母 標點符號 空格,你的任務是檢查這一串字元中的 是否匹配。input 輸入資料有多組,處理到檔案結束。output 如果匹配就輸出 yes 不匹配輸出 no example input sin 20 10...
資料結構實驗之棧與佇列四 括號匹配
problem description 給你一串字元,不超過50個字元,可能包括括號 數字 字母 標點符號 空格,你的任務是檢查這一串字元中的 是否匹配。input 輸入資料有多組,處理到檔案結束。output 如果匹配就輸出 yes 不匹配輸出 no example input sin 20 10...