【练习题】proj2 字符串压缩
输入一个字符串,输出简单的压缩
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
using namespace std;
string func(string data){
int pre = data[];
for(int i=;i<(int)data.size();i++){
cout << "find:"<<data[i]<<endl;
char temp = data[i];
if(temp == pre){
int pos = i;
data[pos]='';
cout << "same"<<endl;
temp = data[++i];
while(temp == pre){
data[pos]++;
temp = data[(++i)];
}
i=pos;
data.erase(pos+,(data[pos]-'')-);
}
pre = data[i];
}
return data;
}
int main(){
string result; string s="xxxxxxxyyyyyyz";
result = func(s);
cout << result <<endl;
return ;
}
转一个别人的做法感觉比我的做法好
void stringZip(const char *pInputStr, long lInputLen, char *pOutputStr){
// 安全检查
assert((pInputStr != NULL) && (pOutputStr != NULL));
char mark = *pInputStr;
int count = ;
long j = ; // 压缩之后的str的下标
for (long i = ; i <= lInputLen; i ++){
// 判断是否一样
if (i < lInputLen && mark == pInputStr[i]){
count++;
}
else
{
if (count > ){
//zip str
pOutputStr[j] = count;
pOutputStr[++j] = mark;
j ++;
count = ;
}
else // if (count == 1){
pOutputStr[j] = mark;
j++;
}
mark = pInputStr[i];
}
}
}
2)压缩字符串
第二个没啥思路啊
#include <iostream>#include <vector>#include <algorithm>#include <string>using namespace std;//1 2 3 4 5 1000 2//一个字符串,找最长无重复字母子串.string func(string data){ int pre = data[0]; for(int i=1;i<(int)data.size();i++){ cout << "find:"<<data[i]<<endl; char temp = data[i]; if(temp == pre){ int pos = i; data[pos]='2'; cout << "same"<<endl; temp = data[++i]; while(temp == pre){ data[pos]++; temp = data[(++i)]; } i=pos; data.erase(pos+1,(data[pos]-'0')-2); } pre = data[i]; } return data;}int main(){ string result;
string s="xxxxxxxyyyyyyz"; result = func(s); //result.erase(2); cout << result <<endl; return 0;}
【练习题】proj2 字符串压缩的更多相关文章
- 基于Zlib算法的流压缩、字符串压缩源码
原文:基于Zlib算法的流压缩.字符串压缩源码 Zlib.net官方源码demo中提供了压缩文件的源码算法.处于项目研发的需要,我需要对内存流进行压缩,由于zlib.net并无相关文字帮助只能自己看源 ...
- php字符串压缩
在PHP中偶尔遇到字符串的压缩,比如一个长字符串,数据库开始设计的字段存不下,但是又不想改数据库字段存储长度,就可以用压缩的方式降低数据字段字符串的长度数量级,把几百个字符的字符串压缩到几十个字符.总 ...
- 字符串压缩 stringZip
1,题目描述 通过键盘输入一串小写字母(a~z)组成的字符串.请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串.压缩规则:1. 仅压缩连续重复出现的字符.比如字符串 ...
- ruby直接字符串压缩与解压缩
ruby2.1.3的核心类中包含了Zlib库,其中的Zlib模块包含了对字符串压缩和解压的方法: irb(main):180:0> Zlib.class => Module irb(mai ...
- 记录新项目中遇到的技术及自己忘记的技术点【DES加密解密,MD5加密,字符串压缩、解压,字符串截取等操作】
一.DES加密.解密 #region DES加密解密 /// <summary> /// 进行DES加密 /// </summary> /// <param name=& ...
- C# 使用GZip对字符串压缩和解压
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.I ...
- PAT 1078 字符串压缩与解压(20)(代码+思路)
1078 字符串压缩与解压(20 分) 文本压缩有很多种方法,这里我们只考虑最简单的一种:把由相同字符组成的一个连续的片段用这个字符和片段中含有这个字符的个数来表示.例如 ccccc 就用 5c 来表 ...
- CC05:基本字符串压缩
题目 利用字符重复出现的次数,编写一个方法,实现基本的字符串压缩功能.比如,字符串"aabcccccaaa"经压缩会变成"a2b1c5a3".若压缩后的字符串没 ...
- PAT(B) 1078 字符串压缩与解压(Java)
题目链接:1078 字符串压缩与解压 (20 point(s)) 题目描述 文本压缩有很多种方法,这里我们只考虑最简单的一种:把由相同字符组成的一个连续的片段用这个字符和片段中含有这个字符的个数来表示 ...
随机推荐
- C++机器学习古典材料
Caffe :高速神经网络架构 住址:https://github.com/BVLC/caffe CCV :以C语言为核心的现代计算机视觉库 地址:https://github.com/liuliu/ ...
- visual studio 编译器在辨异 C/C++ 程序时的注意事项
1. 数组大小的限制 visual studio 对数组的维数(元素的个数)没有限制,但要求数组的 size (sizeof() 后的结果,所占内存的大小)不得超过 0x7fff ffff = 2^3 ...
- node lesson3
var express = require('express'); var superagent = require('superagent'); var cheerio = require('che ...
- 张正友相机标定Opencv实现以及标定流程&&标定结果评价&&图像矫正流程解析(附标定程序和棋盘图)
使用Opencv实现张正友法相机标定之前,有几个问题事先要确认一下,那就是相机为什么需要标定,标定需要的输入和输出分别是哪些? 相机标定的目的:获取摄像机的内参和外参矩阵(同时也会得到每一幅标定图像的 ...
- 向西项目管理工具Git一片
前言 Git 这个词相信大家并不陌生,做开发的童鞋们每天都离不开它.当然,假设你的项目中没实用到分布式,那么,你可能从未用过 Git,当然也可能没听过.只是,这不是重点,重点是这一篇文章,我们将一起谈 ...
- HDU 4919 打表找规律 java睑板 map 递归
== oeis: 点击打开链接 瞎了,x.mod(BigInteger.ValueOf(2)).equal( BigInteger.ValueOf(1)) 写成了 x.mod(BigInteger.V ...
- 从hadoop 要删除字符串匹配指定的任务
我们都知道,假设 hadoop job -list 获取当前正在执行的hadoop 任务,返回的结果例如以下: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQ ...
- spring boot mybatis XML文件读取properties配置信息
配置文件application.properties中相关配置信息可以在部署以后修改,引用配置信息可以在代码和mybatis的映射文件中 1.JAVA代码 可以通过变量去读取 application. ...
- 华为开发者论坛FusionStage版块
FusionStage版块 http://developer.huawei.com/ict/forum/forum.php?mod=forumdisplay&fid=400191&pa ...
- Spring Boot 专题
Spring is a very popular Java-based framework for building web and enterprise applications. Unlike m ...