题解 | #字符串排序#

字符串排序

https://www.nowcoder.com/practice/5af18ba2eb45443aa91a11e848aa6723

#include <stdio.h>
#include <string.h>

struct node {
    char value[100];
    struct node* next;
};

int main() {
    int n;
    struct node* header = (struct node*) calloc(sizeof(struct node), 1);

    char value[100];
    scanf("%d", &n);

    for (int i = 0 ; i < n; i++) {
        scanf("%s", value);
        if (header->next == NULL) {
            struct node* indexNode = (struct node*) calloc(sizeof(struct node), 1);
            header->next = indexNode;
            strcpy(indexNode->value, value);
        } else {
            struct node* p = header;
            while (p != NULL) {
                if (p->next == NULL) {
                    struct node* new = (struct node*) calloc(sizeof(struct node), 1);
                    new->next = p->next;
                    p->next = new;
                    strcpy(new->value, value);
                    break;
                } else if (strcmp(p->next->value, value) >= 0) {

                    struct node* new = (struct node*) calloc(sizeof(struct node), 1);
                    new->next = p->next;
                    p->next = new;
                    strcpy(new->value, value);

                    break;
                } else   {
                    p = p->next;
                }

            }
        }
    }

    struct node* p = header;
    while (p->next != NULL) {
        printf("%s\n", p->next->value);
        p = p->next;
    }

    return 0;
}

这题的思路我的做法跟之前哪个合并索引算法是一样的,没想到有什么其他更好的办法

全部评论

相关推荐

Yki_:你要算时间成本呀,研究生两三年,博士三四年,加起来就五六年了,如果你本科去腾讯干五年,多领五年的年薪,加上公司内涨薪,可能到时候十五年总薪资也跟博士差不多
点赞 评论 收藏
分享
zYvv:双一流加大加粗再标红,然后广投。主要是获奖荣誉不够,建议开始不用追求大厂,去别的厂子刷下实习。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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