不小心发现的水题
水题的关键就是刷效率了,发现我自己写的itoa,竟然比printf还好效率相当好啊
下面代码gcc 16ms
#define MAX 10000 char data[MAX+1]; char ans[MAX+1]; void change(int x,int *index) { char tmp[MAX+1]; int i=0; while(x>0) { tmp[MAX-i]=x%10+'0'; x/=10; ++i; } while(i!=0) { ans[(*index)++]=tmp[MAX-(--i)]; } return; } int main() { int N,i=0,j=0,length=0; scanf("%d",&N); getchar(); while(N--) { gets(data); length=0; for(i=0;data[i];) { for(j=i,++i;data[i] && data[i]==data[j];++i); change(i-j,&length); ans[length++]=data[j]; } ans[length]=0; puts(ans); } }