給定字串,只包含以下括號:'(', ')', '', '[' and ']' , 判斷輸入是否合法。括號匹配必按照要求:"()" and "(){}", 而不是 "(]" and "([)]"
格式:
輸入包含多行,每一行輸入乙個長度不超過80的字串,直到遇到結束符為止。每一行輸入只包含以上括號,如果合法,輸出true,否則false。
輸入:
((((({{{]]]]]]
輸出:
false
//解題思路:逐個遍歷,如果遇到左括號就壓入堆疊,遇到右括號就出棧,這樣的話如果最後棧是空的就說明合法,否則就不合法
#include#includeusing namespace std;
int main()
{ char s[100],a[100];
int top,sum;
top=-1;//表示棧底
cin>>a;
for(int i=0;i
生成合法的括號
給定乙個數字n,生成包含2n括號的合法序列 n 3 public listgenerateparenthesis int n private void generateall char chars,listres,int pos return chars pos generateall chars,...
合法括號序列
合法括號序列 鍵盤上有左括號 右括號 和退格鍵 共三個鍵。牛牛希望按鍵n次,使得輸入的字串恰好乙個合法的括號序列。每按一次左括號 字串末尾追加乙個左括號 每按一次右括號 字串末尾追加乙個右括號 每按一次退格鍵 會刪掉字串的最後乙個字元,特別的,如果字串為空,牛牛也可以按退格,但是什麼都不會發生。輸出...
最長合法括號
給乙個只由 和 組成的字串,找出其中最長的連續合法子串長度。leetcode input output 2 input output 4 input output 4很明顯,可以用動態規劃,我也是這麼想的。構建dp len len dp i j 表示以i開頭,j結尾的子串中最長子串。s表示字串,然後...