- 😣 第一次练习 2020年3月16日 看题解,但是这个题和某一题,感觉特别像,移动零
- 💩 第二次练习
# 双指针
这解法都快是一种常用操作了
解题代码
/**
* @param {string} S
* @return {string}
*/
var compressString = function(S) {
// 双指针解法
let result = "";
let j = 0, i = 0;
while(j < S.length - 1) {
if (S[j] !== S[j + 1]) {
result = result + S[j] + (j - i + 1);
i = j + 1;
}
j ++;
}
result = result + S[j] + (j - i + 1);
return result.length >= S.length ? S : result;
};
# 易错点
认真读题,若压缩后的字符串没有变短,则还是返回原来的长度。
判断长度的时候应该是 长度 - 1
while(j < S.length - 1)