思路:循环遍历,当遇到连续的相同的字符时,统计其出现的个数,然后加到结果字符串中。最后根据结果字符串把chars数组更新一下
class Solution {
public int compress(char[] chars) {
int i = 0;
int n = chars.length;
int count;
String result = "";
while (i < n) {
count = 1;
char c = chars[i];
while (i < n - 1 && chars[i] == chars[i + 1]) {
i++;
count++;
}
result += c;
if (count != 1) {
result += String.valueOf(count);
}
i++;
}
for (int k = 0; k < result.length(); k++) {
chars[k] = result.charAt(k);
}
return result.length();
}
}
复制代码




近期评论