http://acm.hdu.edu.cn/showproblem.php?pid=1020
#include<stdio.h>
#include<string.h>
char str[10005]; //输入的字符串
int a[26]; //标记26个字母的个数
int main()
{
int n,i,flag; //flag保存读入字母的ASCII码
while (scanf("%d",&n)!=EOF)
{
while (n--)
{
for(i=0;i<26;i++)
a[i]==0;
scanf("%s",str);
for (i=0;i<strlen(str);i++)
{
if (i==0)
{
a[str[i]-'A']++;
flag=str[i];
}
else
{
if (str[i]==flag)
{
a[str[i]-'A']++;
}
else
{
if ( a[flag-'A'] > 1 )
{
printf("%d%c",a[flag-'A'],flag);
}
else
printf("%c",flag);
a[flag-'A']=0;
flag=str[i];
a[str[i]-'A']++;
}
}
}
if ( a[flag-'A'] > 1 ) //最后几个字母相同,但是退出了循环,没有输出
{
printf("%d%c",a[flag-'A'],flag);
}
else
printf("%c",flag);
a[flag-'A']=0;
printf("\n");
}
}
return 0;
}