题解 | #查找兄弟单词#
查找兄弟单词
https://www.nowcoder.com/practice/03ba8aeeef73400ca7a37a5f3370fe68
#include <stdio.h> #include <string.h> void px(char x[10], char y[10]) { int len = strlen(x); for (int i = 0; i < len; i++) { if (x[i] > y[i]) { char z[10] = {0}; strcpy(z, x); strcpy(x, y); strcpy(y, z); break; } else if (x[i] < y[i]) { break; } } } int xd(char x[10], char y[10]) { int lenx = strlen(x); int leny = strlen(y); if (lenx == leny) { int k = 0; char x1[10], y1[10]; strcpy(x1, x); strcpy(y1, y); for (int i = 0; i < lenx; i++) { for (int j = 0; j < leny; j++) { if (x1[i] == y1[j]) { x1[i] = EOF; y1[j] = EOF; k++; break; } } } if (k == lenx && strcmp(x, y) != 0) { return 1; } else { return 0; } } else { return 0; } } int main() { int a, k; char str[1000][10] = {0}; char x[10] = {0}; scanf("%d", &a); for (int i = 0; i < a; i++) { scanf("%s", str[i]); } scanf("%s", x); scanf("%d", &k); char temp[1000][10] = {0}; int w = 0; for (int i = 0; i < a; i++) { // printf("%c",str[i][0]); // printf("%d",xd(x,str[i])); if (xd(x, str[i]) == 1 ) { strcpy(temp[w], str[i]); w++; // printf("%d\n",w); } } for (int i = 0; i < w - 1; i++) { for (int j = i + 1; j < w; j++) { px(temp[i], temp[j]); } } printf("%d\n", w); printf("%s", temp[k - 1]); return 0; }