在紡織cad系統開發過程中,經常會遇到紗線排列的問題。
該問題的描述是這樣的:常用紗線的品種一般不會超過25種,所以分別可以用小寫字母表示不同的紗線,例如:abc表示三根紗線的排列;重複可以用數字和括號表示,例如:2(abc)表示abcabc;1(a)=1a表示a;2ab表示aab;如果括號前面沒有表示重複的數字出現,則就可認為是1被省略了,如:cd(abc)=cd1(abc)=cdabc;這種表示方法非常簡單緊湊,也易於理解;但是計算機卻不能理解。為了使計算機接受,就必須將簡單緊湊的表達方式展開。某acm隊接受了此項任務。現在你就是該acm隊的一員,請你把這個程式編寫完成。
已知條件:輸入的簡單緊湊表達方式的長度不超過250個字元;括號前表示重複的數不超過1000;不會出現除了數字、括號、小寫字母以外的任何其他字元;不會出現括號不配對等錯誤的情況(錯誤處理已由acm其他隊員完成了)。
input本題有多個測試資料組,第一行輸入的就是資料組數n,接著就是n行表示式,表示式是按照前面介紹的意義書寫的。output輸出時含有n行,每行對應乙個輸入的表示式。sample input
21(1a2b1(ab)1c)
3(ab2(4ab))
sample output
abbabc
abaaaabaaaababaaaabaaaababaaaabaaaab
題意很簡單,運用遞迴的思想。
#include
#include
char a[
2000];
int n;
intdfs
(int s)
else}if
(a[i]
==')'
)return i;
}int
main()
return0;
}
第十周作業 B
題目描述 東東有兩個序列a和b。他想要知道序列a的lis和序列ab的lcs的長度。注意,lis為嚴格遞增的,即a1if a j 對於lcs問題,處理方法也很簡單,如果最後乙個一樣,那他們就是同樣的子串行,如果最後乙個不一樣,那就去掉每乙個的最後乙個和另外乙個比較,取最大值,之後串的範圍不斷縮小,到後...
團隊賽(第十周)
a 3 e right 10 a wrong 30 c wrong 50 b wrong 100 a wrong 200 a right 250 c wrong 300 d right 17 h right 15 b wrong 30 e wrong 35 e right 80 b wrong 80...
第十周周小結
2.本次工作任務 本週老師沒有明確的給每個團隊留這週的作業,因為每個團隊的專案進入到了開發階段,老師只是要求每個團隊每天必須有要有明確的任務,提交量和團隊內部每日例會總結上傳到碼雲倉庫,助教每天每天進入倉庫檢視,他們專案倉庫的提交結果並進行點評和打分。我負責的團隊 web5組,web8組,web9組...