题解 | #字符串排序#

字符串排序

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

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
    int n;
    char **strs;
    char *str;
    unsigned int strCount=0;
    unsigned int bufferLen;
    scanf("%d",&n);
    strs = (char**)malloc(n*sizeof(char *));
    bufferLen = n*10*sizeof(char);
    str = (char*)malloc(bufferLen);
    //存储数据
    for(int i=0;i<n;i++)
    {
        char tempStr[101];
        unsigned int tempStrCount=0;
        scanf("%100s",tempStr);
        tempStrCount=strlen(tempStr);

        if(strCount+tempStrCount+1>bufferLen)
        {
            bufferLen+=101;
            str=(char*)realloc(str,bufferLen);//使用realloc之后,之前的数据物理地址会变
        }
        strcpy(str+strCount,tempStr);        
        strCount+=tempStrCount+1;//还要加上\0占的1字节        
    }
    //查找字符串索引
    for(int i=0;i<bufferLen;i++)
    {
        static int strsCount=0;
        static int tempStrCount = 0;
        
        if(str[i]=='\0')
        {
            if(strsCount==n)
                break;
            else{
                strs[strsCount++]=str+i-tempStrCount;
                tempStrCount = 0;
            }
        }
        else
            tempStrCount++;
    }



    //冒泡排序
    for(int i=0;i<n-1;i++)
    {
        for(int j=0;j<n-i-1;j++)
        {
            if(strcmp(strs[j],strs[j+1])>0)
            {
                char* temp = strs[j];
                strs[j]=strs[j+1];
                strs[j+1]=temp;
            }
        }
    }
    for(int i=0;i<n;i++)
    {
        printf("%s\n",strs[i]);
    }
    free(strs);
    free(str);
    return 0;
}

全部评论

相关推荐

头像
04-27 15:11
已编辑
华东师范大学 算法工程师
暑期实习从2月开始投,面了两个月,流程该挂的都挂完了,腾讯字节一共号称是1.7w个hc,不知道都发给谁了,估计今年秋招要难顶。Timeline米哈游、美团、蚂蚁、微软等公司直接简历挂穿,没进面。携程:3.3&nbsp;投递、测评3.12&nbsp;笔试3.18&nbsp;一面3.25&nbsp;二面4.13&nbsp;ai面(hr面)4.14&nbsp;英语测评4.23&nbsp;offer(已拒)腾讯:2.6&nbsp;测评2.28&nbsp;wxg一面3.5&nbsp;wxg二面(挂)3.11&nbsp;teg一面3.21&nbsp;teg二面(取消)3.31&nbsp;teg一面4.10&nbsp;teg二面(挂)4.21&nbsp;wxg一面4.24&nbsp;wxg二面(挂)字节:1.28&nbsp;aml约面(取消)3.17&nbsp;火山一面(挂)4.8&nbsp;aml一面(挂)4.20&nbsp;抖音data一面(挂)阿里:3.23&nbsp;投递、测评3.28&nbsp;笔试3.31&nbsp;淘天一面4.8&nbsp;钉钉一面4.9&nbsp;淘天二面4.10&nbsp;阿里控股一面4.12&nbsp;钉钉二面(取消)4.15&nbsp;淘天hr面4.16&nbsp;淘天offer(已接)4.21&nbsp;高德一面(取消)4.22&nbsp;淘宝闪购一面(取消)面试最大的感触是,现在撞上ai转型,一堆老业务急着转向,新业务非常不成熟,研究型的组bar非常高根本进不去,业务侧挂着算法的岗位干的都是工程活,面试却又要问算法,另外agent的落地也远没有那么广,绝大多数还是那套写死的系统调一下llm&nbsp;api或者做做rag,其余少部分真的在搭agent的,基本不能在线上服务用什么很智能的模型,现阶段成本太高,进去大概率就是给垃圾模型从工程方面兜底,除了业务场景的应用和数据经验以外,技术方面很难有什么提升。算法岗做不了基模的还是去搜广推好,之前判断失误了完全没投,秋招不知道还进不进得去。
嵌入式的小白:不错啊,淘天也是挺好的,恭喜
我的求职进度条
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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