【ACM】hdu_zs2_1003_Problem C_201308031012

Problem C
Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other)
Total Submission(s) : 56   Accepted Submission(s) : 10
Font: Times New Roman | Verdana | Georgia
Font Size: ← →
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

 


#include <stdio.h>
#include <string.h>
char str[10100];
int main()
{
    int N;
    scanf("%d",&N);
    getchar();
    while(N--)
    {
        int i,j,k;
        gets(str);
        for(i=0;i<strlen(str);i++)
        {
            for(k=0,j=i+1;j<strlen(str);j++)
            {
                if(str[i]==str[j])
                k++;
                if(str[i]!=str[j])
                break;
            }
            if(k>0)
            printf("%d%c",k+1,str[i]);
            else
            printf("%c",str[i]);
            i+=k;
        }
        printf("\n");
    }
    return 0;
}

posted @ 2013-08-05 21:25  龙腾四海365  阅读(96)  评论(0编辑  收藏  举报