|
EncodingTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 26744 Accepted Submission(s): 11806
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
Sample Output
|
小开心,一次AC!
不过发现杭电审检有一点不严谨,题目说先输入一个数字作为接下来的用例次数,可是我的程序却出现用例次数无限,即循环,与数字无关,虽然与我初衷有些不同,但却能通
过!哈哈,再找时间修改!先贴AC代码!
#include<stdio.h>
#include<string.h>
int main(){
char a,a_1;
int n,i,m,t=1;
while(scanf("%d\n",&n)!=EOF){
for(m=0;m<n;m++){
i=0;
while(1){
a=getchar();
i=i+1;
if(i==1) a_1=a;
if(i>1&&65<=a&&a<=90){
if(a_1==a)
t=t+1;
if(a_1!=a){
if(t==1){
printf("%c",a_1);
a_1=a;
}
if(t!=1){
printf("%d%c",t,a_1);
a_1=a;
t=1;
}
}
}
if(a<65||a>90){
if(t==1){
printf("%c\n",a_1);
break;
}
if(t!=1){
printf("%d%c\n",t,a_1);
break;
}
}
}
}
}
}