`
kingj
  • 浏览: 421306 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

实现一个字符串的压缩功能

 
阅读更多

如题:

写一个函数,实现对字符串的压缩

String cypte(String data){}

例如:

cypte("AABBBCCCCDDDDAAAAAJJJJJ")返回2A3B4C4D5A5J

cypte("xxxxxxxyyyyyyyyyyyyyykkk")返回7x14y3k

cypte("ABBBDDGGHHHH")返回A3B2D2G4H

 

我这里有一个参考实现,希望各位拍砖

static void cypte(String s){
		StringBuilder sb=new StringBuilder();
		int l=s.length();
		char t=' ';
		if(l==1){
			System.out.println(s);
		}else{
			for(int i=0;i<l;){
				int k=i+1;
				int c=1;
				
				while(k<l&&(s.charAt(i)==s.charAt(k))){
					t=s.charAt(i);
					c++;
					k++;
				}
                                if(k==i+1){
					t=s.charAt(i);
				}
				i+=c;
				if(c==1){
					sb.append(t);
				}else{
					sb.append(c).append(t);
				}
			}
			System.out.println("压缩结果为\t"+sb);
		}
	}

 

分享到:
评论

相关推荐

    C语言字符串快速压缩算法代码

    主要介绍了C语言字符串快速压缩算法代码,将字符串中连续出席的重复字母进行压缩,其主要的压缩字段的格式为”字符重复的次数+字符”。有需要的小伙伴参考下吧。

    LeetCode 面试题 01.06. 字符串压缩

    利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串aabcccccaaa会变为a2b1c5a3。若“压缩”后的字符串没有变短,则返回原先的字符串。你可以假设字符串中只包含大小写英文字母(a至z)...

    C#自定义字符串压缩和解压缩的方法

    主要介绍了C#自定义字符串压缩和解压缩的方法,通过自定义C#字符串操作类实现对字符串的压缩与解压的功能,具有一定参考借鉴价值,需要的朋友可以参考下

    KMP算法:高效字符串匹配算法详解

    2. 文本编辑器开发者:在开发文本编辑器时,需要实现字符串查找和替换功能。KMP算法可以优化查找和替换操作,提高编辑器的性能。 3. 数据压缩开发者:在开发数据压缩算法时,需要查找重复的字符串并进行压缩。KMP...

    java代码-写一个程序,将字符串中重复的内容进行压缩,例如:“wwwwaaadexxxxxx” 压缩后变成 “w4a3dex6”

    java代码-写一个程序,将字符串中重复的内容进行压缩,例如:“wwwwaaadexxxxxx” 压缩后变成 “w4a3dex6”

    2.KMP算法:高效字符串匹配算法详解

    2. 文本编辑器开发者:在开发文本编辑器时,需要实现字符串查找和替换功能。KMP算法可以优化查找和替换操作,提高编辑器的性能。 3. 数据压缩开发者:在开发数据压缩算法时,需要查找重复的字符串并进行压缩。KMP...

    Oracle P/L SQL实现文件压缩、解压功能

    Oracle P/L SQL实现文件压缩、解压功能,以下是此过程包的头部,包体经常打包处理plb,感兴趣用户可以下载下来。 Create or Replace Package UTL_ZIP AUTHID CURRENT_USER as Type File_List is Table of Clob; -...

    Android实现压缩字符串的方法示例

    最近在做Android开发,遇到了需要压缩字符串的功能,下面这篇文章主要给大家介绍了Android实现压缩字符串的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们...

    C语言字符串原地压缩实现方法

    本文实例讲述了C语言字符串原地压缩的实现方法,对于学习字符串操作的算法设计有不错的借鉴价值。分享给大家供大家参考。具体方法如下: 字符串原地压缩示例: “eeeeeaaaff”压缩为”e5a3f2” 具体功能代码如下: /...

    基于pako.js实现gzip的压缩和解压功能示例

    主要介绍了基于pako.js实现gzip的压缩和解压功能,结合具体实例形式分析了pako.js实现字符串压缩与解压缩的相关操作技巧,需要的朋友可以参考下

    leetcode中国-algorithm:数据结构和算法(精选)

    利用字符重复出现的次数,编写一个方法,实现基本的字符串压缩功能。比如,字符串“aabcccccaaa”经压缩会变成“a2b1c5a3”。若压缩后的字符串没有变短,则返回原先的字符串。 思路:定义一个字符串数组用来放存在的...

    C#实现LZW压缩算法解码器

    C#帮助类(Helper class)是一种用于封装常用功能的类。它通常包含一组静态方法,这些方法能够...例如,一个日期帮助类可以提供各种日期计算和格式化的方法,一个字符串帮助类可以提供字符串处理和转换的方法,等等。

    串类型的基本定义和实现

    //Index中包括了一个静态函数get_next(),这个函数可以得到字符串的最简匹配值(kmp算法中字符匹配失败后的下一个最佳匹配值) //用字符串Tstr替换主串str中出现的所有与substr相等的子串 int StrReplace(HString *...

    leetcode中国-suanfa:suanfa

    利用字符重复出现的次数,编写一个方法,实现基本的字符串压缩功能。比如,字符串“aabcccccaaa”经压缩会变成“a2b1c5a3”。若压缩后的字符串没有变短,则返回原先的字符串。 思路:定义一个字符串数组用来放存在的...

    C++源代码单词扫描程序(词法分析)实验报告

    一. 实验内容 功能: 1.C++源代码扫描程序识别C++记号。C++语言包含了几种类型的记号:标识符,关键字,...4.* 选作部分:进一步思考或实现——如何进一步实现减小源文件大小的压缩功能。 5.应该书写完善的软件文档。

    Visual C++ 2005入门经典--源代码及课后练习答案

    4.1.4 字符数组和字符串处理 147 4.1.5 多维数组 150 4.2 间接数据存取 153 4.2.1 指针的概念 153 4.2.2 声明指针 154 4.2.3 使用指针 155 4.2.4 初始化指针 157 4.2.5 sizeof运算符 162 4.2.6 ...

    Qt之zlib库实现gzip压缩解压源码

    该案例通过zlib实现gzip的压缩解压功能,包括解压gzip字符串、图片两个案例;提供了zlib1211的源码包和对应编译后生成的文件; 相应说明参考笔者博客:Qt笔记8--zlib实现gzip解压,链接...

    基于C语言实现的文件加密解密与压缩解压【100011224】

    循环从Fn取出一定大小的字符串,对其进行哈夫曼编码。将其编码保存到目标文件Fd中,直到取完所有数据。 文件解密: 从密码本文件Ft中获取字符码表。 以字符码表为参数构造哈夫曼树。 循环从Fn文件中取出一定大小的...

    C++源代码单词扫描程序(词法分析)

    功能: (1)C++源代码扫描程序识别C++记号。...(5)选作部分:进一步思考或实现——如何进一步实现减小源文件大小的压缩功能。 (6)应该书写完善的软件文档,最好使用Rational Rose来完成部分框图。

    CMD命令行高级教程

    六、用7-ZIP 实现命令行压缩和解压功能 七、调用VBScript 程序 八、将批处理转化为可执行文件 九、时间延迟 1、利用ping 命令延时 2、利用for 命令延时 3、利用vbs 延迟函数,精确度毫秒,误差1000 毫秒内 4、仅用...

Global site tag (gtag.js) - Google Analytics