题解 | #查找兄弟单词#
查找兄弟单词
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;
}
