题目: 输入一个字符串,输出对其压缩过的形式。
    如输入为:aaabbbccc则输出为3a3b3c;如输入为abbc,则输出为a2bc。
    aaabbbccc  ---->  3a3b3c

abc        ---->  abc

#include <iostream>
#include <string>
using namespace std;

int main()
{
    int cnt = 1;///cnt the number of every char
    int pos = 1;
    char tmp_A,tmp_B;
    string ori_str, sht_str;
    string::size_type ori_len;
    char c_cnt;
    cout<<"input the ori string"<<endl;
    cin>>ori_str;

ori_len = ori_str.size();
    for (; pos < static_cast<int>(ori_len); ++pos)
    {
        tmp_A = ori_str[pos - 1];
        tmp_B = ori_str[pos];

if (tmp_A != tmp_B && pos != static_cast<int>(ori_len-1))
        ///没到末尾的时候,AB不同
        {
            if (cnt == 1)
            {
                sht_str.push_back(tmp_A);
            }
            else
            {
                c_cnt = cnt + '0';
                sht_str.push_back(c_cnt);
                sht_str.push_back(tmp_A);
                cnt = 1;
            }
        }
        else if (tmp_A != tmp_B && pos == static_cast<int>(ori_len-1))
        ///在末尾,但是A,B不同
        {
            if (cnt == 1)
            {
                sht_str.push_back(tmp_A);
            }
            else
            {
                sht_str.push_back(cnt);
                sht_str.push_back(tmp_A);
                cnt = 1;
            }
            sht_str.push_back(tmp_B);
        }
        else if (tmp_A == tmp_B && pos != static_cast<int>(ori_len-1))
        ///不在末尾,AB相同
        {
            ++cnt;
        }
        else if (tmp_A == tmp_B && pos == static_cast<int>(ori_len-1))
        ///在末尾,AB相同
        {
            cnt++;
            c_cnt = cnt + '0';
            sht_str.push_back(c_cnt);
            sht_str.push_back(tmp_A);
        }
    }

cout<<sht_str;
    return 0;
}

字符串压缩之C++实现相关推荐

  1. python【蓝桥杯vip练习题库】ADV-301 字符串压缩

    试题 算法提高 字符串压缩 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 编写一个程序,输入一个字符串,然后采用如下的规则对该字符串当中的每一个字符进行压缩: (1) 如果该字符是 ...

  2. redis源码之字符串压缩

    redis关于字符串压缩的几个文件分别是:lzf.h,lzfP.h,lzf_c.c,lzf_d.c,下面看一个测试用例. #include <iostream> #include < ...

  3. leetcode 解压缩_leetcode之字符串压缩

    序 本文主要记录一下leetcode之字符串压缩 题目 字符串压缩.利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能.比如,字符串aabcccccaaa会变为a2b1c5a3.若&quo ...

  4. C语言字符串压缩显示

    昨天参加WPS的笔试时,有一道题是要求写一个函数实现字符串压缩,举个例子: 输入:aaabbccccc 输出:a3b2c5 当时总想着怎么把输入的字符串str改写成输出那压缩形式,如果要修改字符串的话 ...

  5. C#自定义字符串压缩和解压缩源码库

    如下的内容是关于C#自定义字符串压缩和解压缩库的内容. class ZipLib{public static string Zip(string value){byte[] byteArray = n ...

  6. Python3 解题:字符串压缩

    Python3 解题:字符串压缩 原题 https://leetcode-cn.com/problems/compress-string-lcci/ 题目: 字符串压缩.利用字符重复出现的次数,编写一 ...

  7. 程序员面试金典 - 面试题 01.06. 字符串压缩(字符串)

    1. 题目 字符串压缩.利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能.比如,字符串aabcccccaaa会变为a2b1c5a3.若"压缩"后的字符串没有变短,则返 ...

  8. C++学习之路 | PTA乙级—— 1078 字符串压缩与解压 (20 分)(精简)

    1078 字符串压缩与解压 (20 分) 文本压缩有很多种方法,这里我们只考虑最简单的一种:把由相同字符组成的一个连续的片段用这个字符和片段中含有这个字符的个数来表示.例如 ccccc 就用 5c 来 ...

  9. 面试题 01.06. 字符串压缩

    2020-03-16 1.题目描述 字符串压缩 2.解题思路 用一个字符变量c存放第一个不同的字符,然后遍历其后面的字符,如果相同则cnt加一,否则更新c 以及cnt,注意这里的cnt是可能大于10的 ...

  10. LeetCode 面试题 01.06. 字符串压缩 (双指针)

    面试题 01.06. 字符串压缩 题意: 压缩字符串,如:"aabbccc"压缩为"a2b2c3",如果压缩后的字符串长度大于等于原字符串,则返回原来的字符串. ...

最新文章

  1. Hexo博客NexT主题美化之顶部加载进度条
  2. 3.8 注意力模型-深度学习第五课《序列模型》-Stanford吴恩达教授
  3. PHP几种常见魔术方法与魔术变量解析
  4. python_base_while循环、for循环
  5. [js] 举例说明js立即执行函数的写法有哪些?
  6. linux rpm找不到命令_linux书后习题(4-9章不全) - lijinli
  7. tomcat 内存溢出问题
  8. gpg: 找不到有效的 openpgp 数据。_萤火数据|找主播堪比相亲找对象,该如何避免心酸血泪史?...
  9. SQL 通配符 、分页 功能的学习
  10. SRP Batcher,Draw Call优化,Shader SRP Batcher compatible
  11. Struts2通配符错误问题
  12. 挣脱注意力经济:为什么应该练习数字极简主义?
  13. 使用Pr CS6剪视频导入的视频中音频一直出现“在试图写入下列文件时发生了错误…”提示在右下角。?
  14. Hibernate学习-14:实体之间的关系及其配置,级联操作
  15. 关于CMNET和CMWAP联网实践
  16. Eclipse怎样改变字体大小
  17. 戴尔G15伪黑屏(细看显示屏仍能看到电脑屏幕上的内容)的处理方式
  18. 天冷了,这事儿要提上日程啦|独秀日记
  19. 微服务项目之电商--17.商品规格数据结构SPU和SKU
  20. 深入浅出WPF知识点汇总一

热门文章

  1. 为什么过来人很多推荐出国读博?
  2. 公司经理美国西北大学自费访问学者成行
  3. 度量体系建立与COSMIC方法应用36问
  4. 沪穗深百万地铁族担心:花生WiFi到底安全吗?
  5. 什么是IPAM(IP地址管理)?
  6. 英文文献检索(一) web of science使用
  7. 小强升职记梗概_第一章 找到时间黑洞 小强升职记
  8. S2SH+ExtJS4实战开发电子商业汇票系统
  9. 消除数据信息碎片化 打通大数据应用“最后一公里”
  10. 如何检测应用程序调用了哪些DLL文件?