昨天的题解
每天一道leetcode443-压缩字符串 分类:字符串
给定一个字符串,逐个翻转字符串中的每个单词。
示例:
输入: "the sky is blue", 输出: "blue is sky the". 说明:
无空格字符构成一个单词。 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。
思路 代码(安卓机代码可以移动,苹果机不行,最近我在寻找一个新的代码排版,PC端打开没有问题)
先放个图片,代码排版有问题的看图片
test.png
class Solution {
public int compress(char[] chars) {
int count = 1;
int index = 0;
for (int i = 0; i < chars.length; i++) {
if (i + 1 == chars.length || chars[i] != chars[i+1]) {
chars[index++] = chars[i];
if (count > 1) {
String temp = String.valueOf(count);
for(int k=0;k<temp.length();k++)
chars[index++] = temp.charAt(k);
}
count = 1;
}
else {
count++;//统计重复字符的个数
}
}
return index;
}
}
代码讲解