题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1020
C语言源码:
#include<stdio.h>
#include<string.h>
int main()
{
int n,i,flag;
char s[10001];
int a[26];
while(scanf("%d",&n)!=EOF)
{
while(n--)
{
for(i=0;i<26;i++)
a[i]=0;
getchar();
scanf("%s",s);
for(i=0;i<(int)strlen(s);i++)
{
if(i==0)
{
a[s[i]-'A']++;
flag=s[i];
}
else
{
if(s[i]==flag)
a[s[i]-'A']++;
else
{
if(a[flag-'A']>1)
printf("%d%c",a[flag-'A'],flag);
else
printf("%c",flag);
a[flag-'A']=0;
flag=s[i];
a[s[i]-'A']++;
}
}
}
if(a[flag-'A']>1)
printf("%d%c",a[flag-'A'],flag);
else
printf("%c",flag);
a[flag-'A']=0;
printf("\n");
}
}
}