Encoding

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 55351    Accepted Submission(s): 24697


Problem Description
Given a string containing only 'A' - 'Z', we could encode it using the following method: 

1. Each sub-string containing k same characters should be encoded to "kX" where "X" is the only character in this sub-string.

2. If the length of the sub-string is 1, '1' should be ignored.
 

 

Input
The first line contains an integer N (1 <= N <= 100) which indicates the number of test cases. The next N lines contain N strings. Each string consists of only 'A' - 'Z' and the length is less than 10000.
 

 

Output
For each test case, output the encoded string in a line.
 

 

Sample Input
2 ABC ABBCCC
 

 

Sample Output
ABC A2B3C
 

 

Author
ZHANG Zheng
 
 
代码:
 1 #include<stdio.h>
 2 #include<string.h>
 3 int main(){
 4     char str[10005];
 5     int n,i,cnt;
 6     while(~scanf("%d",&n)){
 7         while(n--){
 8             scanf("%s",&str);
 9             for(i=0;str[i]!='\0';i++){
10                 cnt=1;
11                 while(str[i]==str[i+1]){
12                       cnt++;i++;
13                 }
14                 if(cnt==1) printf("%c",str[i]);
15                 else printf("%d%c",cnt,str[i]);
16             }
17             printf("\n");
18         }
19     }
20     return 0;
21 }