文档章节

压缩字符串

r
 ranjiewen
发布于 2016/11/03 23:48
字数 205
阅读 5
收藏 0
//利用字符重复出现的次数,编写一个方法,实现基本的字符串压缩功能。比如,字符串“aabcccccaaa”经压缩会变成“a2b1c5a3”。
//若压缩后的字符串没有变短,则返回原先的字符串。
//给定一个string iniString为待压缩的串(长度小于等于3000),保证串内字符均由大小写英文字母组成,返回一个string,
//为所求的压缩后或未变化的串。
#include<iostream>
using namespace std;
#include<string>
#include<sstream>
class Zipper {
public:
    string zipString(string iniString) {
        // write code here
        string result;
        int count = 1;
        for (size_t i = 0; i < iniString.size(); i++)
        {
            while (iniString[i] == iniString[i + 1]&&(i+1)<iniString.size())
            {
                i++;
                count++;
            }
            result.push_back(iniString[i]);  //result+=iniString[i];
            /*stringstream ss;
            string temp;
            ss << count;
            ss >> temp;*/
            //result.push_back(temp);
            result += to_string(count);            
            count = 1;
        }
        if (iniString.size()<=result.size())
        {
            return iniString;
        }
        else 
            return result;
    }
};

void main()
{
    Zipper z;
    string str;
    str=z.zipString("aabcccccaaa");
    cout << str << endl;

}

 

本文转载自:http://www.cnblogs.com/ranjiewen/p/5317549.html

r
粉丝 1
博文 203
码字总数 28
作品 0
武汉
程序员
私信 提问
华为2014校园招聘:压缩字符串

通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。 压缩规则: 1、仅压缩连续重复出现的字符。比如字符...

wangxigui
2014/03/10
131
0
Zlib实现压缩和解压缩流程

压缩流程: 1.使用zlib做压缩,先调用deflateInit(),这个函数必须在使用deflate之前,zalloc,zfree和opaque等字段都是在deflateInit被初始化的,deflateInit将分配按照顺序分配内存空间,每次分配...

mickelfeng
2013/03/28
467
0
linux 命令 gzip和gunzip 解压缩

gzip命令用来压缩文件。gzip是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多处“.gz”扩展名。 gzip不仅可以用来压缩大的、较少使用的文件以节省磁盘空间,还可以和tar命令一起构...

__稻草人__
2015/08/28
1K
0
Java压缩技术(一) ZLib

应好友需要,整理一下Java的压缩算法,先从ZLib开始。 相关链接: Java压缩技术(一) ZLib Java压缩技术(二) ZIP压缩——Java原生实现 Java压缩技术(三) ZIP解压缩——Java原生实现 Ja...

村长大神
2014/11/05
117
0
[LeetCode] Design Compressed String Iterator 设计压缩字符串的迭代器

Design and implement a data structure for a compressed string iterator. It should support the following operations: next and hasNext. The given compressed string will be in the ......

机器的心脏
2017/11/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring使用ThreadPoolTaskExecutor自定义线程池及实现异步调用

多线程一直是工作或面试过程中的高频知识点,今天给大家分享一下使用 ThreadPoolTaskExecutor 来自定义线程池和实现异步调用多线程。 一、ThreadPoolTaskExecutor 本文采用 Executors 的工厂...

CREATE_17
今天
5
0
CSS盒子模型

CSS盒子模型 组成: content --> padding --> border --> margin 像现实生活中的快递: 物品 --> 填充物 --> 包装盒 --> 盒子与盒子之间的间距 content :width、height组成的 内容区域 padd......

studywin
今天
7
0
修复Win10下开始菜单、设置等系统软件无法打开的问题

因为各种各样的原因导致系统文件丢失、损坏、被修改,而造成win10的开始菜单、设置等系统软件无法打开的情况,可以尝试如下方法解决 此方法只在部分情况下有效,但值得一试 用Windows键+R打开...

locbytes
昨天
8
0
jquery 添加和删除节点

本文转载于:专业的前端网站➺jquery 添加和删除节点 // 增加一个三和一节点function addPanel() { // var newPanel = $('.my-panel').clone(true) var newPanel = $(".triple-panel-con......

前端老手
昨天
8
0
一、Django基础

一、web框架分类和wsgiref模块使用介绍 web框架的本质 socket服务端 与 浏览器的通信 socket服务端功能划分: 负责与浏览器收发消息(socket通信) --> wsgiref/uWsgi/gunicorn... 根据用户访问...

ZeroBit
昨天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部