#include <stdio.h> #include <string.h> typedef struct node{ int num; char c; }node; int comp(const void* a,const void* b) { node* c = (node*)a; node* d = (node*)b; if(c->c == d->c) return c->num - d->c; else return (int)(c->c - d->c); } int main(void) { int t; scanf("%d",&t); while(t--) { //getchar(); node a[1000]; char str[1000]; scanf("%s",str); int i,n = strlen(str),index = 0; for(i = 0;i < n;i++) { a[i].num = i; a[i].c = str[i]; } qsort(a,n,sizeof(node),comp); for(i = 0;i< n;i++) { index++; if(a[i].c != a[i + 1].c) { printf("%d%c",index,a[i].c); index = 0; } } printf("\n"); } } |
Double click to view unformatted code.