problem description
在紡織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
abbabcabaaaabaaaababaaaabaaaababaaaabaaaab
遇到『(』就進入遞迴,遇到『)』就返回,遇到數字輸出
#include #include #include #include #include #include #include #include #include #include #include using namespace std;
typedef long long ll;
#define n 17500
#define inf 0x3f3f3f3f
#define pi acos (-1.0)
#define eps 1e-5
#define met(a, b) memset (a, b, sizeof (a))
char str[n];
int dataiyang (int index)
else
}if (str[i] == ')') return i;
}int main ()
return 0;
}
hdu 1274 展開字串
problem description 在紡織cad系統開發過程中,經常會遇到紗線排列的問題。該問題的描述是這樣的 常用紗線的品種一般不會超過25種,所以分別可以用小寫字母表示不同的紗線,例如 abc表示三根紗線的排列 重複可以用數字和括號表示,例如 2 abc 表示abcabc 1 a 1a表示a...
HDU 1274 展開字串
problem description 在紡織cad系統開發過程中,經常會遇到紗線排列的問題。該問題的描述是這樣的 常用紗線的品種一般不會超過25種,所以分別可以用小寫字母表示不同的紗線,例如 abc表示三根紗線的排列 重複可以用數字和括號表示,例如 2 abc 表示abcabc 1 a 1a表示a...
hdu1274 展開字串
在紡織cad系統開發過程中,經常會遇到紗線排列的問題。該問題的描述是這樣的 常用紗線的品種一般不會超過25種,所以分別可以用小寫字母表示不同的紗線,例如 abc表示三根紗線的排列 重複可以用數字和括號表示,例如 2 abc 表示abcabc 1 a 1a表示a 2ab表示aab 如果括號前面沒有表示...