Sample Input
2 1(1a2b1(ab)1c) 3(ab2(4ab))
Sample Output
abbabc abaaaabaaaababaaaabaaaababaaaabaaaab
看看案例就应该知道题意了。
程序代码:
#include<cstring> #include<cstdio> #include<string> #include<iostream> using namespace std; #define N 666 char str[N]; int k; string dfs() { string temp; int num = 0; while(str[k] != ')' && str[k] != '\0') { if(str[k] >= '0' && str[k] <= '9') num = num * 10 + str[k] - '0' , k++; else if(str[k] >= 'a' && str[k] <= 'z' && num != 0) { for(int i = 0; i < num; i++) temp += str[k]; k++ , num = 0; } else if(str[k] >= 'a' && str[k] <= 'z' && num == 0) temp += str[k] , k++ , num = 0; else if(str[k] == '(' && num != 0) { k++; string flag; flag = dfs(); for(int i = 0; i < num; i++) temp += flag; num = 0; } else if(str[k] == '(' && num == 0) k++ , temp += dfs(); } k++; // str[k] == ')' 时要加1 return temp; } int main() { int T; scanf("%d", &T); while(T--) { k = 0; scanf("%s", str); cout << dfs() << endl; } return 0; }