如题:
写一个函数,实现对字符串的压缩
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);
}
}