描述
假設表示式中只包含三種括號:圓括號、方括號和花括號,它們可相互巢狀,如([{}])或()等均為正確的格式,而)}或均為不正確的格式.
輸入一串括號
如果輸入的右括號多餘,輸出: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...