leetcode 面试题 0106.字符串压缩

⭐️ 题目描述


🌟 leetcode链接:面试题 0106.字符串压缩

思路: 开辟一个新的空间(空间要大一点,因为可能压缩后的字符串比原字符串大),然后遍历原字符串统计当前字符的个数,再写入到新开辟的空间中,最后只需判断一下原字符串长度和新字符串长度决定返回谁即可。

代码:

c 复制代码
char* compressString(char* S){  
    int S_length = strlen(S);
    char * new_str = (char*)calloc(S_length * 3 , sizeof(char));
    int i = 0;
    while (S[i]) {
        int count = 1;
        int left = i;
        int right = i + 1;
        while (S[right] && S[left] == S[right]) {
            count++;
            right++;
        }

        // 写入新的字符串中
        // 注:sprintf 返回的是上次写回的字符个数
        sprintf(new_str, "%s%c%d" , new_str  , S[left] , count);
        
        i = right;
    }

    return strlen(new_str) >= S_length ? S : new_str;
}

相关推荐
夏天想6 分钟前
人类将从“执行者“变为“总导演”,学习Ai知识
人工智能·学习
晓梦林39 分钟前
Baji1靶场学习笔记
笔记·学习
希冀1231 小时前
【CSS学习第十一篇】
前端·css·学习
魔法阵维护师2 小时前
从零开发游戏需要学习的c#模块,第十六章(安装 MonoGame 并创建第一个窗口)
学习·游戏·c#·monogame
xian_wwq2 小时前
【学习笔记】大模型备案到底要交什么材料
笔记·学习
老鱼说AI3 小时前
统计学习方法第一章讲解:统计与监督学习概率
人工智能·学习·学习方法
他们叫我阿冠3 小时前
Day5学习--SpringBoot详解
spring boot·后端·学习
水木流年追梦4 小时前
大模型入门-Reward 奖励模型训练
开发语言·python·算法·leetcode·正则表达式
tedcloud1234 小时前
hello-agents部署教程:从零学习AI Agent开发
服务器·人工智能·学习·自动化·powerpoint
我想我不够好。4 小时前
针对性抓人 随机应变
学习