华为机试——字符串压缩

华为机试——字符串压缩字符串压缩通过键盘输入一串小写字母 a z 组成的字符串 请编写一个字符串压缩程序 将字符串中连续出席的重复字母进行压缩 并输出压缩后的字符串 压缩规则 1 仅压缩连续重复出现的字符 比如字符串 abcbc 由于无连续重复字符 压缩后的字符串还是 abcbc 2 压缩字段的格式为 字符重复的次数 字符 例如 字符串 xxxyyyyyyz 压缩后就成为 3x6yz

字符串压缩

#include 
    #include 
    const int N=100; using namespace std; void stringZip(const char *pInputStr, long InputLen, char *pOutputStr); int main() { char input[N]; char *output=new char[strlen(input)+1];//为字符串数组分配地址 //int len=0; cin.getline(input,N); //len=strlen(input); stringZip(input,strlen(input),output); cout< 
  
    delete output; 
   return 
   0; } 
   void stringZip( 
   const 
   char *pInputStr, 
   long InputLen, 
   char *pOutputStr) { 
   const 
   char *p=pInputStr; 
   //必须把常量指针const char*赋给常量指针 
   int i= 
   0,j,num= 
   1; p++; 
   while(*p!=NULL) 
   //总循环遍历 { 
   while(*p==*(p- 
   1) && *p!=NULL) 
   //后向遍历比较 { num++; p++; } 
   if(num> 
   1) { 
   int size= 
   0; 
   int temp; temp=num; 
   while(num) 
   //计算num的位数 { size++; num/= 
   10; } 
   for(j=size;j> 
   0;j--) 
   //倒序存储数字num的每一位,字符的位数 { pOutputStr[i+j- 
   1]=temp% 
   10+ 
   '0'; temp/= 
   10; } i+=size; 
   //存储字符 pOutputStr[i++]=*(p- 
   1); p++; num= 
   1; } 
   else { pOutputStr[i++]=*(p- 
   1); p++; } } pOutputStr[i++]=*(p- 
   1); pOutputStr[i]= 
   '\0'; } 
  
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/219300.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午10:53
下一篇 2026年3月17日 下午10:53


相关推荐

  • OpenClaw 多 Channel 实战总结(Windows 环境)

    OpenClaw 多 Channel 实战总结(Windows 环境)

    2026年3月13日
    2
  • touchesBegan 触摸事件

    touchesBegan 触摸事件一、概念介绍1、在用户使用App过程中,会产生各种各样的事件,iOS中的事件可以分为3大类型:1)触摸事件2)加速计事件3)远程操控事件响应者对象UIResponder        在iOS中不是任何对象都能处理事件,只有继承了UIResponder的对象才能接收并处理事件。我们称之为“响应者对象”。      UIApplication、UIViewController、UIView都继承…

    2022年7月25日
    11
  • 操作系统概念(Operating System Concepts Ninth Edition恐龙书)阅读

    操作系统概念(Operating System Concepts Ninth Edition恐龙书)阅读我最近在读一本操作系统的书(操作系统概念OperatingSystemConceptsNinthEdition),这本书是学习操作系统非常不错的书,只要学习过计算机组成原理、计算机体系结构、微机原理等课程就很容易读下去,虽然大多数是概念,不过课后也有编程实战题目,因此可以对操作系统有很好的把控。因此推荐给大家。大家如果看完,可以进一步看看Unix内核编程、现代操作系统的书。…

    2022年7月14日
    17
  • 易语言脚本开发入门教程

    易语言脚本开发入门教程天蓝易语言脚本入门开发系列教程第 1 讲初识易语言天蓝易语言脚本入门开发系列教程第 2 课简单控件变量天蓝易语言脚本入门开发系列教程第 3 讲简单登录器制作天蓝易语言脚本入门开发系列教程第 4 讲计算器实现天蓝易语言脚本入门开发系列教程第 5 讲时钟随机数天蓝易语言脚本入门开发系列教程第 6 讲子程序的应用天蓝易语言脚本入门开发系列教程第 7 讲选择夹列表框天蓝易语言脚本入门开发系列教程第 8 讲读写配置项天蓝易语言脚本入门开发系列教程第 9 讲数组天蓝易语言脚本入门开发系列教程第 10 讲分割文本读取帐号密码天蓝易

    2026年3月18日
    2
  • android之存储篇_SQLite存储方式「建议收藏」

    SQLite是一种转为嵌入式设备设计的轻型数据库,其只有五种数据类型,分别是:    NULL: 空值    INTEGER: 整数    REAL: 浮点数    TEXT: 字符串    BLOB: 大数据  在SQLite中,并没有专门设计BOOLEAN和DATE类型,因为BOOLEAN型可以用INTEGER的0和1代替true和false,而DATE类型则可以拥有特

    2022年3月10日
    41
  • 我是全网最硬核的高并发编程作者,CSDN最值得关注的博主,大家同意吗?(建议收藏)「建议收藏」

    我是全网最硬核的高并发编程作者,CSDN最值得关注的博主,大家同意吗?(建议收藏)「建议收藏」我是全网最硬核的高并发编程作者,CSDN最值得关注博主,全网最硬核的基于可视化的多数据源数据异构中间件作者,也许现在就是,也是不久的将来就是,大家同意吗?

    2022年5月31日
    34

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号