使用双指针来确定重复字符的个数,然后使用StringBuilder来构建新的字符串。
class Solution {
public String compressString(String S) {
int len = S.length();
if(len<1)return "";
StringBuilder sb = new StringBuilder();
int slow=0;
int fast = 0;
while(slow< len && fast< len){
while(fast <len && slow < len && S.charAt(slow) == S.charAt(fast) ){
fast++;
}
sb.append(S.charAt(slow));
sb.append(Integer.toString(fast-slow));
slow = fast;
}
return sb.length()<len?sb.toString():S;
}
}
本文介绍了一种使用双指针技术的字符串压缩方法,通过遍历原始字符串并计算每个字符的重复次数,利用StringBuilder构建压缩后的字符串。如果压缩后的字符串长度小于原字符串,则返回压缩后的字符串,否则返回原字符串。
1097

被折叠的 条评论
为什么被折叠?



