题解 | #字符串排序#

字符串排序

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

不用库函数的暴力解法

主要采用了冒泡排序,分了三种情况对字符串进行处理

#include<string.h>

struct str {
    char ch[101];
};

int main() {
    struct str n[1001];
    struct str temp;
    int count, len, k;
    while ((scanf("%d", &len)) != EOF){
        count = len;
        while (count--) {
            scanf("%s", n[count].ch);
        }
    }
    for (int i = 0; i < len - 1; i++) {
        for (int j = 0; j < len - i - 1; j++) {
            if (strlen(n[j].ch) > strlen(n[j + 1].ch)) {
                for (k = 0; k < strlen(n[j + 1].ch); k++) {
                    if (n[j].ch[k] > n[j + 1].ch[k]) {
                        temp = n[j];
                        n[j] = n[j + 1];
                        n[j + 1] = temp;
                        break;
                    }
                    if (n[j].ch[k] < n[j + 1].ch[k])
                        break;
                }
                if (k == strlen(n[j + 1].ch)) {
                    temp = n[j];
                    n[j] = n[j + 1];
                    n[j + 1] = temp;
                }
            }
            if (strlen(n[j].ch) == strlen(n[j + 1].ch)) {
                for (k = 0; k < strlen(n[j + 1].ch); k++) {
          
                    if (n[j].ch[k] > n[j + 1].ch[k]) {
                        temp = n[j];
                        n[j] = n[j + 1];
                        n[j + 1] = temp;
                        break;
                    }
                    if (n[j].ch[k] < n[j + 1].ch[k])
                        break;
                }
            }
            if (strlen(n[j].ch) < strlen(n[j + 1].ch)) {
                for (k = 0; k < strlen(n[j].ch); k++) {

                    if (n[j].ch[k] > n[j + 1].ch[k]) {
                        temp = n[j];
                        n[j] = n[j + 1];
                        n[j + 1] = temp;
                        break;
                    }
                    if (n[j].ch[k] < n[j + 1].ch[k])
                        break;
                }
            }
        }
    }
    for(int l = 0;l < len;l++){
        printf("%s\n",n[l].ch);
    }
    return 0;
}
全部评论

相关推荐

程序员鼠鼠_春招版:都很烂大街,rpc也基本没人问,考研吧,不然就包装一段实习再去
点赞 评论 收藏
分享
2024-12-12 13:02
已编辑
安徽师范大学 前端工程师
lllllkin:1、基本信息内至少三行废话; 2、专业能力描述 太笼统 没有与意向岗位明显匹配的细节能力 3、获奖经历 立项没用,不如写立项题目 你做了啥,况且 CET-4 默认具备 且 cet4 、‘立项’根本不算奖项, 计算机设计自己做的 都可以单独拉一个项目出来(没有就算了) 4、①②③③全是库库库,④ 听说你设计了一个 ‘通信’? ; 第二个:三行废话 ... 5、挺优秀的
点赞 评论 收藏
分享
从24年初开学开始接触到前端,和实验室几个同学一起学习,可似乎我总比他们慢一步,每每学完一个地方,我掌握的程度好像都不比他们,第一次实验室的任务实战,我两眼一抹黑,完全不知道从何下手,而他们却是游刃有余,可我当时没有丧气,只有一个念头,既然学习能力不如他们,那我就拿更多的时间去学,于是我把打游戏,运动锻炼的时间也拿来学习。到了暑假,实验室一起做项目,为了可以更好的参与进去,于是我暑假开始留校和同学师哥一起做项目,每天早上九点多去实验室,晚上十点多回宿舍,校田径队的训练没有去,中间也只回家待了一周。到暑假结束开学之后,一位很优秀的师哥拿到了几个offer,我从他身上看到了希望,双非本科就业的希望...
offer求求哩:我的评价是认知低,建议多看书,认知低的一个表现是人生仿佛没考上大学就是进厂,考上了就是考研考公找工作。股市里有一个很有意思的故事,说的是当门口大妈都在谈论股票的时候,说明行情已经见顶了。当你的父母在某些事上没有成功却支持你说明事情可能已经不可靠了,但在某些事上反对你,说明这件事可能还有成功的可能。(仅个人观点)😆😆
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务