括號匹配 棧 C

2021-10-03 18:38:54 字數 1018 閱讀 6931

描述

假設表示式中只包含三種括號:圓括號、方括號和花括號,它們可相互巢狀,如([{}])或()等均為正確的格式,而)}或均為不正確的格式.

輸入一串括號

如果輸入的右括號多餘,輸出:extra right brackets

如果輸入的左括號多餘, 輸出:extra left brackets

如果輸入的括號不匹配,輸出:brackets not match

如果輸入的括號匹配,輸出:brackets match

輸入輸出

brackets not match

樣例輸入

樣例輸出

brackets not match
狀態: accepted

#include#include#includeusing namespace std;

#define stack_size 10000

typedef structseqstack;

//初始化棧

void initstack(seqstack *s)

//判斷棧是否為空

int isempty(seqstack *s)

//入棧

int push(seqstack *s,char x)

} //取棧頂元素

int gettop(seqstack *s,char *x)

}//出棧

int pop(seqstack *s,char *x)

}//括號匹配

int brackematch(char *str)

else if((str[i]==')')||(str[i]==']')||(str[i]=='}'))

else')&&(ch=='

else

}}

} if(isempty(&s)==1)

else

return 0;

}int main()

括號匹配 棧 c

問題描述 假設乙個算術表示式中可以包含三種括號 圓括號 方括號 及花括號 且這三種括號可以任意次序巢狀。編寫演算法判斷給定表示式中所含括號是否配對出現。解答 假設表示式已存入字元陣列a n 中,具體演算法如下 include using namespace std char s 99 棧儲存 int...

括號匹配 棧

蒜頭君在紙上寫了乙個串,只包含 和 乙個 能唯一匹配乙個 但是乙個匹配的 必須出現在 之前。請判斷蒜頭君寫的字串能否括號完全匹配,如果能,輸出配對的括號的位置 匹配的括號不可以交叉,只能巢狀 一行輸入乙個字串只含有 和 輸入的字串長度不大於 50000 如果輸入括號不能匹配,輸出一行 no 否則輸出...

棧括號匹配

input 輸入包括多組測試資料,每組資料是乙個字串,字串只包含 等字元。output 對於每組資料輸出 yes 表示當前字串中的括號是匹配的,否則輸出 no 不包括引號 sampleinput sampleoutput yes no題解 利用棧 includeusing namespace std...