字符串压缩算法

有一种简单的字符串压缩算法,对于字符串中连续出现的同一字符,用该字符加上连续出现的次数来表示(连续出现次数小于3的不压缩)。

设计程序,将采用该压缩方法压缩后的字符串解压还原为原字符串并输出。

输入样例:

ab5a10c5

输出样例:

abbbbbaaaaaaaaaaccccc

办法分析
对输入的字符串进行逐个扫描,如果遇到字符串直接输出,如果遇到数字,则逐个读取数字字符将其转为int型数字,然后输出该数字个前一字符。

代码实现

#include <stdio.h>
#include <ctype.h>
int main(){char input[20],tmp,c;int i=0;gets(input);while(input[i]){c=input[i];if(tolower(c)>='a'&&tolower(c)<='z') {printf("%c",c);i++;}else if(c>='0'&&c<='9'){tmp=input[i-1];int num=0;while(input[i]>='0'&&input[i]<='9'){  num=num*10+input[i]-'0';i++;  }num-=1;   while(num--){printf("%c",tmp);}}}return 0;
}

参考代码

#include <stdio.h>
int main()
{int i = 0, sum, count, k;char s[50];gets(s);while (s[i]){printf("%c", s[i]);i++;sum = 0;count = 0;while (s[i] >= '0' && s[i] <= '9'){sum = sum * 10 + s[i] - '0';i++;count++;}for (k = 0; k < sum - 1; k++)printf("%c", s[i - count - 1]);}return 0;
}

链接:
https://mp.weixin.qq.com/s/SZwH2T_GBMJscpL-sf4OJw

字符串压缩算法5.11相关推荐

  1. java 字符串 压缩_用JAVA实现字符串压缩算法

    public class Test3 { /** * 用JAVA实现字符串压缩算法. 将字符串 aaabcdda 编程实现将其转换为 3a1b1c2d1a : * * @param str * 需要转 ...

  2. Java黑皮书课后题第4章:*4.26(金融应用:货币单位)重写程序清单2-10,解决将float型值转换为int型值时可能会造成精度损失的问题。读取的输入值是一个字符串,比如“11.56“

    *4.26(金融应用:货币单位)重写程序清单2-10,解决将float型值转换为int型值时可能会造成精度损失的问题.读取的输入值是一个字符串,比如"11.56" 题目 题目概述 ...

  3. 小红书2019年校园招聘:字符串压缩算法

    字符串压缩算法: 题面: 输入一串字符,请编写一个字符串压缩程序,将字符串中连续出现的重复字母进行压缩,并输出压缩后的字符串. 例如: aac 压缩为 1ac xxxxyyyyyyzbbb 压缩为 3 ...

  4. 实现简易字符串压缩算法

    public class StringZip {// 实现简易字符串压缩算法:一个长度最大为128的字符串,由字母a-z或者A-Z组成,将其中连续出现2次以上(含2次)的字母转换为字母和出现次数,以达 ...

  5. 输入n个字符串字典序排序_FSST - 快速字符串压缩算法

    VLDB: Fast Static Symbol Table (FSST): fast text compression that allows random access 这篇paper提出一种快速 ...

  6. C++字符串反转(C++11)

    ubuntu编译: g++ -std=c++11 deque.cpp -o deque #include <iostream> #include <list> using na ...

  7. 有一个字符串,如11.2美元34人民币;如何将数字与单位分开,放入数组中呢,数组比如 attr[0]=11.2 attr[1]=美元 ,依次类推

    import java.util.regex.Matcher; import java.util.regex.Pattern;public class Test3 {public static voi ...

  8. 2019 小红书校招笔试题字符串压缩算法

    时间限制:1秒 空间限制:32768K 1 2 3 4 输入一串字符,请编写一个字符串压缩程序,将字符串中连续出现的重复字母进行压缩,并输出压缩后的字符串. 例如: aac 压缩为 1ac xxxxy ...

  9. C和指针之字符串编程练习11(统计一串字符包含the的个数)

    1.问题 编写一个函数,对标准的输入进行扫描,并对单词"the"出现的次数进行计数,区分大小写, 输进来的输入可以包含空格字符等等 2.代码实现 #include <stdi ...

最新文章

  1. 实战Linux Bluetooth编程(四) L2CAP层编程
  2. 自学python需要下载什么软件-一篇告诉你为什么人人都应该学点Python?
  3. [转载]CentOS6nbsp;快速搭建轻量级远程桌面nbsp;Xfcenb
  4. kafka自带的zk启动_Centos上将zookeeper和kafka设置为开机自启
  5. java web 数据验证_kpvalidate开辟验证组件,通用Java Web请求服务器端数据验证组件...
  6. Tosca :配置环境参数
  7. mysql协议分析1,MySQL协议分析(1)
  8. C# 根据EXCEL自动生成oracle建表语句
  9. UnityHub破解Unity破解
  10. Unity 镜子反射特效
  11. 行列式与矩阵相关与应用
  12. PYTHON实现迅雷、FLASHGET、QQ旋风转真实链接、磁链转种子文件、迅雷快传链接抓取
  13. 点击图片,放大/缩小图片
  14. python爬虫音乐图片的感受_python爬虫+词云图,爬取网易云音乐评论
  15. 要想成为郎朗,请AI监督练琴可不行!
  16. The 9-th BIT Campus Programming F. 狂乱(背包)
  17. 服务器如何选择备案产品类型?
  18. 修复 eclipse SVN 插件不运行的问题
  19. java ssm 基于springboot的志愿者招募网站
  20. 推荐一些学习软件编程的网站

热门文章

  1. pushlet实现服务器推技术
  2. hadoop读写速度测试
  3. 流程图怎么画?如何轻松绘制流程图
  4. codemirror编辑html,CodeMirror的使用方法
  5. uniapp微信js-sdk使用封装
  6. MAC vim修改hosts文件
  7. H264编码介绍和参数设置
  8. 仿探探:网络请求数据将卡片进行左滑右滑
  9. 红旗linux v11预览版下载,红旗Linux V11社区预览版将发布 :UI风格+兼容面广
  10. vue项目中使用iconMoon图标