
http://acm.hdu.edu.cn/showproblem.php?pid=1020
过了的就是好孩子。。。。。。。。
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<stdlib.h>
#include<iostream>
#include<queue>
using namespace std;
const int N=;
char a[N],b[N];
int main()
{
//freopen("in.txt","r",stdin);
int n;
cin>>n;
while(n--)
{
memset(a,,sizeof(a));
memset(b,,sizeof(b));
scanf("%s",a);
int len=strlen(a);
if(len==)
{
printf("%s\n",a);
continue;
}
int t=,count=;
for(int i=;i<len;i++)
{
if(a[i+]!='\0')
{
if(a[i+]==a[i])
{
count++;//数数
continue;
}
}
if(count!=)
{
count+=;
int temp=count,k=;
while(temp!=)//计算位数
{
temp/=;
k++;
}
t--;
int h=k;
while(k)
{
b[t+k]=count%+'';//从后赋值,123先将3赋值到b
count/=;
k--;
}
t+=h+;//指向
}
b[t++]=a[i];
count=;
}
b[t]='\0';
printf("%s\n",b);
}
return ;
}