首页 > 代码库 > 哈尔滨理工大学2016新生赛K题

哈尔滨理工大学2016新生赛K题

小明这个人特别无聊,他喜欢把一个字符串以一个奇怪的姿势压缩起来。他会把连续的字符表示成字符和数字的形式,而且他用的数字还都是一位的!!!比如下面这个例子:"a12" 表示的是 "aaaa"。也就是说压缩后的字符串里的每个数字表示重复最后一个出现的字符数字次,就好像上面的例子。

现在给你一些被无聊的小明压缩过的字符串,你能还原它么? 

 

输入的第一行包括一个整数 T,表示数据的组数。

每组输入包括一行,一个字符串,表示被小明压缩过的字符串。长度不超过50。 

 

每组输出包括一行,一个字符串,表示你展开之后的字符串。

 

1

a5b6c12 

 

aaaaaabbbbbbbcccc

 

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4 using namespace std;
 5 
 6 int main()
 7 {
 8     int t;
 9     cin>>t;
10     t++;
11     for(int j=0;j<t;j++){
12             char c,a[10000],d;
13             int m=0;
14         while((c=getchar())!=\n){
15             if(c>=0&&c<=9){
16                 for(int i=0;i<(int)(c)-48;i++)
17                     a[m++]=d;
18             }
19             else a[m++]=c;
20             if(c>=0&&c<=9){}
21                 else d=c;
22         }
23         if(j==0)continue;
24         else puts(a);
25         memset(a,0,10000*sizeof(char));
26     }
27     return 0;
28 }

 

哈尔滨理工大学2016新生赛K题