Encoding符号化18

1878 ワード

Encodingコーディング
Problem Description
Given a stringcontaining 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.
 
「A」の文字列-'Z'のみが含まれているため、以下の方法で符号化できます.
 
k個の同じ文字1を含む.各サブストリングは、「のkX」として符号化されなければならない.ここで、「X」は、サブストリングにおける一意の文字である.
 
2.サブストリングの長さが1の場合、'1'は無視されます.
Input
The first linecontains an integer N (1 <= N <= 100) which indicates the number of testcases. The next N lines contain N strings. Each string consists of only 'A' -'Z' and the length is less than 10000.
第1行は、試験例の数を表す整数N(1<=N<=100)を含む.次のN行にはN文字列が含まれます.各文字列は、「A」-「Z」のみで、長さは10000未満です.
 
Output
For each testcase, output the encoded string in a line.
各試験例について、回線符号化文字列を出力する
 
Sample Input
2
ABC
ABBCCC
 
 
Sample Output
ABC
A2B3C
コードは次のとおりです.
#include <stdio.h>
#include <stdlib.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */

//	const int MAXN=10005;
	char a[10005];
int main()
{
    int i,temp;
    int T;
    scanf("%d",&T);//  
    while(T--)
    {
        scanf("%s",&a);//  
        i=0;
        while(a[i]!='\0')//  
        {
            temp=i;
            while(a[temp+1]==a[i])
            {
                temp++;
            }    
            if(temp>i)
			printf("%d",temp-i+1);
            printf("%c",a[i]);
            i=temp;
            i++;
        } 
        printf("
"); } return 0; }