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