猫史档案馆


【云变量救星】超简单压缩算法——行程长度编码(RLE)

用户:Asheep233Asheep233查看:12 回复:17 评论:12 创建时间:2022-04-19T09:43:39



回复

上一页1 页 / 共 1下一页
yee089yee089

沙发+顶()

点赞0


评论


可爱的大甲虫ks5d_原开朗的xxxx可爱的大甲虫ks5d_原开朗的xxxx

板凳

点赞0


评论


小萝卜cXsQ小萝卜cXsQ

这个......有个c++题目和这个差不多

点赞0


评论


橙子nUcg橙子nUcg

真不错,喵d~

点赞0


评论


𝙲ℴ𝗌𝔦𝒹ₑ𝑟𝙲ℴ𝗌𝔦𝒹ₑ𝑟

克星:ABCABCABCABC..............................

输出结果:A1B1C1A1B1C..........................

点赞0


评论


𝙲ℴ𝗌𝔦𝒹ₑ𝑟𝙲ℴ𝗌𝔦𝒹ₑ𝑟

你永远别想在充满分隔符的云变量施展rle()

点赞0


评论


毅尘mz毅尘mz

center_imagecenter_image

把它转换回来

点赞2


评论


FML饭米粒FML饭米粒

这种算法不适用于没有或很少重复单个数据的情况,比如1234567890,这种情况下压缩后大小会翻倍11213141516171819101

点赞0


评论


TechnetiumTechnetium

其实在你猫这个情境下,如果出现了这种压缩算法可用的数据(即长串的相同数据)那应该优先考虑数据结构本身是不是要改而不是去压缩()

点赞2


评论


TechnetiumTechnetium

另外55555会被存成55 这个代码就只适合本身不为数字的数据

点赞1


评论


TechnetiumTechnetium

其实还可以稍微检索一下个数,在数据全不为数字的情况下跳过长度为1的项,可以保证这个算法相对稳定,即压缩后的长度不超过原本的长度

例:qqqqqwwwwertyui→q5w4ertyui

点赞1


评论


IysthingraphicsIysthingraphics

游程编码?

点赞0


评论


TsxetTsxet

1、限制性

必须要连续并且相同的数据,这种情况要想很普遍的话估计是要改单独译码或者转进制

而且你这是单字符诶,压缩能力和ZIP差了千倍(虽然你们用的基础算法都一样)

ZIP就像定义了一个函数,后面运用的话,直接套函数就可以了

2、能力性

限制要求几乎砍掉了超多数据,那压缩还有没有用呢?如果按照你的方法一个字符串都要配一个数字的话,程序反而会更加长。

ZIP也只对3字符串以上的重复数据进行压缩处理。

3、读取性

你这是怎么读取的呢?比如:1112到底是什么意思呢?

是 1 112 表示 112个1

还是1 1  1 2 表示1个1  和   2个1

呢?即使有断点,断点是否也需要占用呢?

断点和ZIP的标记位也差不多,可是你的断点和Literal能比吗?

当然我分析的也不一定正确,如果有错误希望指正。

点赞1


评论


洛日余灰洛日余灰

只上小学但私有云变量又不够用的我路过并表示看不懂……(有人跟我讲云压缩可以解决私有云不够的问题是真的吗?)

点赞0


评论


扬清风扬清风

#include <iostream>
#include <string>
using namespace std;
int main(int argc, char *argv[]) {
	string n;
	cin>>n;
	
	int cnt = 1;
	for(int i = 0;i<n.size();i++){
		if(n[i] == n[i+1]){
			cnt++;
		}
		else{
			if(cnt>1){
				cout<<n[i]<<cnt;
			}
			else{
				cout<<n[i];
			}
			cnt =1;
		}
	}
}

点赞0


评论


Mecat⁧~喵呜⁧Mecat⁧~喵呜⁧

这个方法只限于在充满相同字符的时候用

且基本上云变量的字符数还是够用的

一般分隔符的方法就足够了

点赞0


评论


方圆三角方圆三角

这个帖子是怎么弄的???让我猜猜,是不是iframe?(也许不是)

点赞1


评论