网上有专业的做网站吗,网站建设费放什么科目,百度搜索资源平台,白云区建网站公司⭐️ 题目描述 #x1f31f; leetcode链接#xff1a;面试题 0106.字符串压缩
思路#xff1a; 开辟一个新的空间#xff08;空间要大一点#xff0c;因为可能压缩后的字符串比原字符串大#xff09;#xff0c;然后遍历原字符串统计当前字符的个数#xff0c;再写入到…⭐️ 题目描述 leetcode链接面试题 0106.字符串压缩
思路 开辟一个新的空间空间要大一点因为可能压缩后的字符串比原字符串大然后遍历原字符串统计当前字符的个数再写入到新开辟的空间中最后只需判断一下原字符串长度和新字符串长度决定返回谁即可。
代码
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;
}