一、题目
字符串压缩。利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串aabcccccaaa会变为a2b1c5a3。若“压缩”后的字符串没有变短,则返回原先的字符串。你可以假设字符串中只包含大小写英文字母(a至z)。
二、解题思路
遍历字符串,使用指针i来遍历相同的字母的位置
三、代码
class Solution {
public String compressString(String S) {
StringBuffer ans=new StringBuffer();
int idx=0;
int len=S.length();
while(idx<len) {
int i=idx;
while(i<len && S.charAt(i)==S.charAt(idx)) {
i++;
}
ans.append(S.charAt(idx));
ans.append(i-idx);
idx=i;
}
String str=ans.toString();
if(str.length()<S.length()) {
return str;
}
return S;
}
}