原题如下
字符串压缩
先来手撸代码
class Solution{
public int compressString(String S){
//判断它是否为空,若空直接返回空字符串
if (S.isEmpty())
return "";
//创建一个StringBuilder 来添加信息
StringBuilder sb = new StringBuilder();
//获取字符串的第一个字符,用作在循环里面比较
char a = S.charAt(0);
//创建一个计数器
int count = 0;
for (int i = 0; i < S.length(); i++) {
//获取当前正在遍历的字符b
char b = S.charAt(i);
//如果这个字符与之前获取的a相同
if (a == b) {
//计数器+1
count++;
}
//当i+1不越界的时候
if (i + 1 < S.length()) {
//当下一个字符与b不同的时候
if (S.charAt(i + 1) != b) {
//添加到sb
sb.append(a).append(count);
//a变为下一个字符
a = S.charAt(i + 1);
//计数器归零
count = 0;
}
//这个else是最外层的if(a==b)的else
} else {
sb.append(a).append(count);
}
}
//最后如果sb比S短的话就返回sb,反正S
return sb.length() < S.length() ? sb.toString() : S;
}
}
第一次没看题解做出来了,说多了还是菜啊
仍是那么熟悉的味道,只是用墓土和骨灰作成的身体,已经不再有体温。
——犬夜叉