String Compression
LeetCode題目: 443. String Compression
My solution:
/**
* @param {character[]} chars
* @return {number}
*/
let compress = chars => {
let writePointer = 0; maxSize = chars.length;
for(let startPointer = 0, endPointer = 0; startPointer < maxSize; startPointer = endPointer) {
while(endPointer < maxSize && chars[endPointer] === chars[startPointer]) endPointer++;
chars[writePointer++] = chars[startPointer];
let readSize = endPointer - startPointer;
if(readSize === 1) continue;
for (let digitChar of String(readSize)) chars[writePointer++] = digitChar;
}
return writePointer;
}