public String compressString(String S) {
if(S.length()<=2) return S;
StringBuilder sb = new StringBuilder();
char ch = S.charAt(0);
int count = 1;
for(int i = 1;i<S.length();i++){
if(S.charAt(i)==ch){
count+=1;
}
else{
sb.append(ch);
sb.append(count);
ch = S.charAt(i);
count = 1;
}
}
sb.append(ch);
sb.append(count);
return sb.length()>=S.length() ? S : sb.toString();
}
这道题要注意处理最后的字符串,因为当i=s.length-1时,不会放入sb中。得最后手动加入进sb中