社区
新手乐园
帖子详情
写一个函数实现字符串的压缩存储,实现如下 求解!
xdx2ct1314
2013-08-13 11:57:24
4、 写一个函数实现字符串的压缩存储,函数原型为 void fun(char *str),假设输入字符串只含字母,压缩方式为:如果字符串中出现连续相同字符,则存储为字符的重 复次数+字符本身,如果字母不连续出现,则存储源字符,例如:strStr = “ABBCCCDBB”, 则压缩后的字符串为 “A2B3CD2B”。
...全文
529
8
打赏
收藏
写一个函数实现字符串的压缩存储,实现如下 求解!
4、 写一个函数实现字符串的压缩存储,函数原型为 void fun(char *str),假设输入字符串只含字母,压缩方式为:如果字符串中出现连续相同字符,则存储为字符的重 复次数+字符本身,如果字母不连续出现,则存储源字符,例如:strStr = “ABBCCCDBB”, 则压缩后的字符串为 “A2B3CD2B”。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
2郎神
2015-11-21
打赏
举报
回复
7楼你的程序有bug 字符串赋值完后,后面一定要记得加上结束符\0 要不然显示的时候字符串后面会乱码的,
「已注销」
2013-08-14
打赏
举报
回复
void f(char *str) { char *des=malloc(100*sizeof(char)); char *s=des; int cnt=0; while(*str) {cnt++; str++; if(*str!=*(str-1)) { *des=*(str-1); des++; *des=cnt+0x30; des++; cnt=0; } } printf("%s",s); } void main() { char *str = "ABBCCCDBB"; f(str); }
「已注销」
2013-08-14
打赏
举报
回复
void f(char *str) { char *des=malloc(100*sizeof(char)); char *s=des; int cnt=0; while(*str) {cnt++; str++; if(*str!=*(str-1)) { *des=*(str-1); des++; *des=cnt; cnt=0; } } printf("%s",s); } void main() { char *str = "ABBCCCDBB"; f(str); }
「已注销」
2013-08-14
打赏
举报
回复
des=malloc(100*sizeof(char)); cnt=0; while(*str) {cnt++; str++; if(*str!=*(str-1)) { *des=*(str-1); des++; *des=cnt; cnt=0; } }
大尾巴猫
2013-08-14
打赏
举报
回复
这个比较简单,应该自己先尝试做一下,做的不对了再把代码贴出来,让别人帮你一起修改。
Code研究者
2013-08-14
打赏
举报
回复
这道题属于基本题,两层循环,第二层循环里判断当前元数后面有几个与当前元数相同,并记录个数cnt,然后第一层循环里的计数变量跳过cnt+1,重复直至最后,代码不提交了,自己写写,很简单
max_min_
2013-08-14
打赏
举报
回复
地址一个一个移动遍历操作,出现相邻位置出现相同的添加标示量标示个数! 然后复写到一个buf里! 不是很难
xdx2ct1314
2013-08-14
打赏
举报
回复
经验证,正解答案如下(谢谢各位的帮忙): #include <stdio.h> #include <malloc.h> void f(char *str) { char *des=(char *)malloc(100*sizeof(char)); char *s=des; int cnt=0; while(*str) { cnt++; str++; if(*str!=*(str-1)) { if (cnt !=1) { *des=cnt+0x30; des++; } *des=*(str-1); des++; cnt=0; } } printf("%s",s); } void main() { char *str = "ABBCCCDBB"; f(str); }
Java40道最经典算法
Java最够经典的算法题,初学者必懂。好好学,好好练,这就是学习的最终的秘诀。
算法训练
字符串
压缩
在
字符串
读入时一定要用nextLine()而不是next(),否则会导致
字符串
内容损失。
Python面试宝典第49题:
字符串
压缩
给你
一个
字符数组chars ,请使用下述算法进行压缩。 1、从
一个
空
字符串
s开始,对于chars中的每组连续重复字符 : (1)如果这一组长度为1 ,则将字符追加到s中。 (2)否则,需要向s追加字符,后跟这一组的长度。 2、压缩后得到的
字符串
s不应该直接返回 ,需要转储到字符数组chars中。需要注意的是,如果组长度为10或10以上,则在chars数组中会被拆分为多个字符。 请在修改完输入数组后 ,返回该数组的新长度。 备注:chars[i]可以是小
写
英文字母、大
写
英文字母、数字或符号。
数据结构与算法Java(二)——
字符串
、矩阵压缩、递归、动态规划
不定期补充、修正、更新;欢迎大家讨论和指正 本文以数据结构(C语言版)第三版 李云清 杨庆红编著为主要参考资料,用Java来
实现
数据结构与算法Java(一)——线性表 数据结构与算法Java(三)——树 数据结构与算法Java(四)——图 数据结构与算法Java(五)——排序算法 数据结构与算法Java(六)——检索算法 目录
字符串
strComparestrInsertstrDeleteindexKMPstrReplace矩阵
压缩存储
对称矩阵稀疏矩阵递归汉诺塔问题递归程序执行过程简单递归-&g
求两个
字符串
的最短编辑距离
1.理解最小编辑距离的概念; 编辑距离是一种
字符串
之间相似程度的计算方法。按照Damerau给出的定义,即两个
字符串
之间的编辑距离等于使
一个
字符串
变成另外
一个
字符串
而进行如下操作的最少次数。用edit来表示编辑距离。共四种操作,分别是:a插入,b删除,c替换,d相邻字符交换位置。 比如:edit("happy", "hpapy") == 1(需要交换两个相邻字符"a"和"p"的
新手乐园
33,317
社区成员
41,771
社区内容
发帖
与我相关
我的任务
新手乐园
C/C++ 新手乐园
复制链接
扫一扫
分享
社区描述
C/C++ 新手乐园
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章