您的位置:首页 > 其它

字符串压缩

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));

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  压缩