NYOJ 180 挑剔的小杜
简单题。
附ac代码:
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> #define MAX 1000 + 2 char S[MAX]; char Alp[MAX]; char Dig[MAX]; int cmp(const void *a, const void *b){ return *(char *)b - *(char *)a; } int main(){ int t, alp, dig, len, i; scanf("%d", &t); while(t-- && scanf("%s", S)){ memset(Alp, 0, sizeof(Alp)); memset(Dig, 0, sizeof(Dig)); len = strlen(S); alp = dig = 0; for(i = 0; i != len; ++i) if(isalpha(S[i])) Alp[alp++] = S[i]; else if(isdigit(S[i])) Dig[dig++] = S[i]; qsort(Dig, dig, sizeof(char), cmp); printf("%d ", alp); for(i = alp - 1; i >= 0; --i) putchar(Alp[i]); puts(""); printf("%d %s\n", dig, Dig); } return 0; }