您的位置:首页 > 编程语言 > C语言/C++

UVA 156-Ananagrams

2016-07-19 19:38 197 查看

UVA 156-Ananagrams

题目大意:将没有出现的单词按字典序输出

解题思路:先转换为小写,qsort排序,然后将没出现的输出

#include <stdio.h>
#include <string.h>
#include <iostream>
using namespace std;
int cmp1(const void *a,const void *b) {
return *(char*)a - *(char*)b;
}
int cmp2(const void *a, const void *b) {
return strcmp((char*)a,(char*)b);
}
int main() {
char a[10000][10000];
char b[10000][10000];
char d[10000][10000];
int n = 0;
while(scanf("%s", a
) && a
[0] != '#') {
strcpy(b
, a
);
n++;
}
for(int i = 0; i < n; i++) {
for(int j = 0; b[i][j] != '\0'; j++) {
if(b[i][j] >= 'A' && b[i][j] <= 'Z')
b[i][j] = b[i][j] + 32;
}
qsort(b[i], strlen(b[i]), sizeof(char), cmp1);

}
int s = 0;
for(int i = 0; i < n; i++)
for(int j = 0; j < n; j++) {
if(i != j)
if((strcmp(b[i],b[j])) == 0) {
break;
}
if(j + 1 == n) {
strcpy(d[s], a[i]);
s++;
}

}
qsort(d, s, sizeof(d[0]), cmp2);
for(int i = 0; i < s; i++)
puts(d[i]);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  uva c语言