使用双指针来确定重复字符的个数,然后使用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;
}
}