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
コードは次のとおりです.
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;
}