/**
*字符串压缩
* 字符串压缩。利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。
* 比如,字符串aabcccccaaa会变为a2b1c5a3。若“压缩”后的字符串没有变短,则返回原先的字符串。
* 你可以假设字符串中只包含大小写英文字母(a至z)。
*/
public class CompressString {
public static void main(String[] args) {
String S = "abbccd";
String ans = compressString(S);
System.out.println(ans);
}
public static String compressString(String S) {
if(S == null || S.length() <= 1){
return S;
}
char [] chars = S.toCharArray();
int count = 1;
StringBuffer res = new StringBuffer();
for(int i = 0; i < chars.length;){
int j = i + 1;
while (j < S.length() && chars[i] == chars[j]){
j++;
count++;
}
//退出循环的时候,找到了有多少个连续相等的
res.append(chars[i]);
res.append(count);
i = i + count;
count = 1;
}
//循环结束,得到结果
if (res.length() >= S.length()){
return S;
}
return res.toString();
}
}
JAVA压缩字符串的代码
最新推荐文章于 2023-09-28 09:30:00 发布