代码:
class Solution {
public int compress(char[] chars) {
int n = chars.length;
if(n==1)return 1;
char last = chars[0];
int cnt = 1;
int indexChar = 0;
int indexNum = indexChar+1;
for(int i=1;i<n;i++){
if(chars[i]==last){
cnt++;
}else{
chars[indexChar] = last;
if(cnt>1){
String num = Integer.toString(cnt);
for(int j=0;j<num.length();j++){
chars[indexNum++] = num.charAt(j);
}
indexChar = indexNum;
indexNum = indexChar+1;
}else{
indexChar = indexNum;
indexNum = indexChar+1;
}
last = chars[i];
cnt = 1;
}
if(i==n-1){
chars[indexChar] = last;
if(cnt>1){
String num = Integer.toString(cnt);
for(int j=0;j<num.length();j++){
chars[indexNum++] = num.charAt(j);
}
return indexNum;
}else{
return indexChar+1;
}
}
}
return n;
}
}