题解 | #查找兄弟单词#

查找兄弟单词

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;
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务