/*
二、题目描述(40分):
通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。
压缩规则:
1. 仅压缩连续重复出现的字符。比如字符串"abcbc"由于无连续重复字符,压缩后的字符串还是"abcbc".
2. 压缩字段的格式为"字符重复的次数+字符"。例如:字符串"xxxyyyyyyz"压缩后就成为"3x6yz"要求实现函数: void stringZip(const char *pInputStr, long lInputLen, char *pOutputStr);【输入】 pInputStr:  输入字符串lInputLen:  输入字符串长度         【输出】 pOutputStr: 输出字符串,空间已经开辟好,与输入字符串等长;【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出示例 输入:“cccddecc”   输出:“3c2de2c”输入:“adef”     输出:“adef”输入:“pppppppp” 输出:“8p”
*/#include <iostream>
using namespace std;void stringZip(const char *pInputStr, long lInputLen, char *pOutputStr)
{int count = 1;int j = 0;for(int i = 0;i < lInputLen;i++){if((pInputStr[i] != '\0') && (pInputStr[i] == pInputStr[i+1])){count++;}else{if(count >1)  //count>1的情况.{pOutputStr[j++] = (char)(count + '0');//注意将int型转化为char型表示.pOutputStr[j++] = pInputStr[i];count = 1;}else//count等1的情况.pOutputStr[j++] = pInputStr[i];}}pOutputStr[j] = '\0';
}int main()
{char input[20] = "cccddecc";  char output[20];stringZip(input,20, output);cout << output << endl;char input1[20] = "adef";  char output1[20];stringZip(input1,20, output1);cout << output1 << endl;char input2[20] = "pppppppp";  char output2[20];stringZip(input2,20, output2);cout << output2 << endl;return 0;
}

华为机试——字符串压缩(stringZip)相关推荐

  1. 华为机试-字符串子序列II

    华为机试-字符串子序列II 1.思路 2.代码 1.思路 理解这个抽象题目,其实就是一个求最长子序列的题目.求最长子序列我们一般使用动态规划来做. 与以往不同的是,我们需要倒序求最长子序列,这样可以求 ...

  2. 华为机试--字符串ASC码+偏移量实现加密

    华为机试–字符串ASC码+偏移量实现字符串加密的JS实现 题目描述:给出原文字符串str,通过对字符串的每个字母进行改变来实现加密,加密方式是在每一个字母str[i]偏移特定数组元素a[i]的量.数组 ...

  3. 华为机试字符串分割c语言,2014年华为上机机试c语言标题和答案

    2014年华为上机机试c语言题目和答案 自己code出来的,结果是正确的,但是其中还有很多的优化之处,还请各位大神多多指导. 代码打包: http://download.csdn.net/detail ...

  4. 华为机试——字符串反转

    题目描述 写出一个程序,接受一个字符串,然后输出该字符串反转后的字符串.例如: 输入描述: 输入N个字符 输出描述: 输出该字符串反转后的字符串 示例1 输入 abcd 输出 dcba 思路:利用st ...

  5. 华为机试——字符串分隔

    题目描述 •连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组: •长度不是8整数倍的字符串请在后面补数字0,空字符串不处理. 输入描述: 连续输入字符串(输入2次,每个字符串长度小于1 ...

  6. 华为机试——字符串最后一个单词的长度

    题目描述 计算字符串最后一个单词的长度,单词以空格隔开. 输入描述: 一行字符串,非空,长度小于5000. 输出描述: 整数N,最后一个单词的长度. 输入例子: hello world 输出例子: 5 ...

  7. 华为机试—字符串首字母转换成大写

    举例: 输入:this is a book 返回:This Is A Book #include<stdio.h> #include<stdlib.h> #include< ...

  8. 华为机试-字符串子序列

    判断字符串子序列 给定字符串target和source,判断target是否为source的子序列.你可以认为target和source 中仅包含英文小写字母,字符串source可能会很长,长度~=5 ...

  9. 华为机试—字符串处理专题

    文章目录 (leetbook)字符串-125.验证回文串 5. 最长回文子串 131.分割回文串(见回溯) HJ1计算字符串最后一个单词的长度,单词以空格隔开 HJ2输出输入字符串中含有该字符的个数 ...

最新文章

  1. 史蒂夫·乔布斯很懂团队建设
  2. LOL手游最受男玩家欢迎皮肤,迦娜女主持第一名,长腿黑丝挡不住
  3. error C1853: “Debug\BigBuffer.pch”预编译头文件来自编译器的早期版本,或者预编译头为 C++ 而在 C 中使用它(或相反)...
  4. Linux学习笔记-Linux下的设备文件
  5. 一文带你掌握OBS的两种常见的鉴权方式
  6. jsp ajax聊天室,jsp+servlet实战酷炫博客+聊天系统
  7. 6加载光盘 virtualbox vm_6个轻量级Linux发行版(2019年)
  8. SolarWinds 攻击者开发的新后门 FoggyWeb
  9. python内置数据结构_Python内置数据结构(一)
  10. android 子线程的网络请求为什么还会造成界面卡顿_京东数科mPaaS:深度解读京东金融App(Android)的秒开优化实践...
  11. Springboot后台管理系统
  12. R 和 rgl 绘制 3D 结
  13. java barchart_JAVA-14 用Javafx绘制barchart的另一个实例 2020-11-09
  14. 深入理解golang框架Gin(一)---->Gin简介以及安装使用
  15. 基础实验——与V831串口通讯
  16. ls、du命令的用法
  17. 关于IntelliJ IDEA 安装后遇到的各种问题
  18. ElementUI的el-tree实现懒加载查询和直接全部查询出来
  19. ISIS:运营商协议
  20. 跟燕青学Nacos系列03-Nacos配置管理模型

热门文章

  1. 企业内部信息安全管理——(一)风险识别和管控
  2. 问题 E: 分分分 学生的命根
  3. 用 JavaScript 编写日历
  4. 计算机二进制数的换算
  5. 移动端H5页面编辑器开发实战--经验技巧篇
  6. 新冠病毒研究进展:维生素D或许能挽救新冠患者
  7. 大白话说网络(网络知识学习)
  8. Java编程笔记7:内部类
  9. Lens Shading成因及相关
  10. 智工教育:一消《技术实务》知识点整理