字符串压缩
2015-11-03 22:06
337 查看
利用字符重复出现的次数,编写一个方法,实现基本的字符串压缩功能。
比如,字符串“aabcccccaaa”经压缩会变成“a2b1c5a3”。若压缩后的字符串没有变短,则返回原先的字符串。
给定一个string iniString为待压缩的串(长度小于等于3000),保证串内字符均由大小写英文字母组成,返回一个string,为所求的压缩后或未变化的串。
import java.util.*;
public class Zipper {
public String zipString(String iniString) {
// write code here
if(iniString==null||iniString.trim().length()==0){
return "";
}
StringBuilder strB = new StringBuilder("");
char[] iniStr = iniString.toCharArray();
char pre;
pre = iniStr[0];
int count = 1;
for(int i = 1;i < iniStr.length; i++){
if(pre == iniStr[i]){
count++;
}else{
strB.append(pre+""+count);
pre = iniStr[i];
count = 1;
}
}
strB.append(pre+""+count);
if(strB.toString().length() >= iniString.length()){
return iniString;
}
return strB.toString();
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner s=new Scanner(System.in);
String str=s.nextLine();
// String str="aabbcccc";
Zipper z=new Zipper();
System.out.println(z.zipString(str));
}
}
比如,字符串“aabcccccaaa”经压缩会变成“a2b1c5a3”。若压缩后的字符串没有变短,则返回原先的字符串。
给定一个string iniString为待压缩的串(长度小于等于3000),保证串内字符均由大小写英文字母组成,返回一个string,为所求的压缩后或未变化的串。
import java.util.*;
public class Zipper {
public String zipString(String iniString) {
// write code here
if(iniString==null||iniString.trim().length()==0){
return "";
}
StringBuilder strB = new StringBuilder("");
char[] iniStr = iniString.toCharArray();
char pre;
pre = iniStr[0];
int count = 1;
for(int i = 1;i < iniStr.length; i++){
if(pre == iniStr[i]){
count++;
}else{
strB.append(pre+""+count);
pre = iniStr[i];
count = 1;
}
}
strB.append(pre+""+count);
if(strB.toString().length() >= iniString.length()){
return iniString;
}
return strB.toString();
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner s=new Scanner(System.in);
String str=s.nextLine();
// String str="aabbcccc";
Zipper z=new Zipper();
System.out.println(z.zipString(str));
}
}
相关文章推荐
- C#使用DeflateStream解压缩数据文件的方法
- C#调用WinRar执行rar、zip压缩的方法
- C#实现页面GZip或Deflate压缩的方法
- C#使用iCSharpcode进行文件压缩实现方法
- C#实现压缩HTML代码的方法
- Asp.net在线备份、压缩和修复Access数据库示例代码
- 使用UglifyJS合并/压缩JavaScript的方法
- 高性能WEB开发 JS、CSS的合并、压缩、缓存管理
- 脚本分析、压缩、混淆工具 JSA新版本发布,压缩效率提高大约10%
- 发布一个高效的JavaScript分析、压缩工具 JavaScript Analyser
- PHP实现图片压缩的两则实例
- 在IIS上启用Gzip压缩 (HTTP压缩)第1/3页
- javascript实现的样式表(CSS) 格式整理与压缩
- php zlib压缩和解压缩swf文件的代码
- YUI Compressor压缩JavaScript原理及微优化
- Nginx中的Gzip压缩配置介绍
- python zip文件 压缩
- Tomcat配置gzip压缩提高浏览网站的速度
- C#实现的文件压缩和解压缩类
- CSS代码格式化和压缩的方法与技巧