ayit五一訓練 b題

2021-10-05 17:22:18 字數 1128 閱讀 1265

在紡織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

2

1(1a2b1(ab)1c)

3(ab2(4ab))

sample output

abbabc

abaaaabaaaababaaaabaaaababaaaabaaaab

sponsor

#include#include#include char a[500];

int n;

int dfs(int h)

i=l;

} if(a[i]>='a'&&a[i]<='z')

}if(a[i]==')')

return i;

}int main()

return 0;

}

題意  按照題目要求輸出相應的字母

思路      1判斷第乙個為數字還是字母:如果是字母,直接存入。

2當第乙個為數字時要判斷數字為幾位數,所以要小心,然後找到第乙個前括號(再找到與之對應的那乙個後括號),把這                個進行多次存入,再存入的過程中判斷其中是不是還存在數字和括號,如果有,繼續迴圈,直到全部寫完就可以了。

五一訓練包 水題

g 7水題題解 題意為找出存在於 陣列中的 陣列,陣列比 陣列多兩個數,乙個數為 陣列的和,另乙個數為無關的數。我的思路一開始侷限了,所以正確思路應該是將 陣列先求和 記得注意數字範圍 然後排序。排序之後能找到兩個較大值,就又兩種判斷,第一種,用和減去最大值,如果剛好等於倒數第二個數的兩倍,那 陣列...

五一訓練包 水題

c 3 水題題解 題意為判斷所給的數列能不能由題中所給要求交換陣列,使之成為乙個遞增的數列 題目所給要求是 當存在不滿足非遞減的兩個陣列元素時,如果這兩個元素的最大公約數等於陣列中的最小元素,就可以交換,如果最後交換出來的陣列滿足非遞減就輸出yes否則輸出no。題意挺好理解,關鍵是 怎麼做,輸入時可...

ayit第十五周訓練題題i題

you are given two integers nandk,your task is to find the most significant three digits,and least significant three digits ofnk.input input starts wit...