#include <cstdio>
#include <cstring>
#include <cstdlib>
int len;
char word[50][10];
char sorted[50][10];
int cmp_char(const void *_a, const void *_b){
char *a = (char*)_a;
char *b = (char*)_b;
return *a - *b;
}
int cmp_str(const void *_a, const void *_b){
char *a = (char*)_a;
char *b = (char*)_b;
return strcmp(a, b);
}
int main(){
memset(word, '\0', sizeof(word));
memset(sorted, '\0', sizeof(sorted));
len = 0;
while (true){
scanf("%s", word[len]);
if (word[len][0] == '*'){
break;
}
++len;
}
qsort(word, len, sizeof(word[0]), cmp_str);
for (int i = 0; i < len; ++i){
strcpy(sorted[i], word[i]);
qsort(sorted[i], strlen(sorted[i]), sizeof(char), cmp_char);
}
char in[10];
memset(in, '\0', sizeof(in));
while (scanf("%s", in) == 1){
qsort(in, strlen(in), sizeof(char), cmp_char);
bool found = false;
for (int i = 0; i < len; ++i){
if (strcmp(in, sorted[i]) == 0){
printf("%s ", word[i]);
found = true;
}
}
if (!found){
printf(":(");
}
printf("\n");
memset(in, '\0', sizeof(in));
}
return 0;
}
算法竞赛入门经典 5.3.2字母重排
最新推荐文章于 2022-11-18 16:29:37 发布