export function compress(chars: string[]): number { let L = 0; let R = 1; let count = 1; const N = chars.length; while (R <= N) { if (chars[R] !== chars[L]) { if (count > 1) { const countStr = count.toString(); for (let i = 0; i < countStr.length; i++) { chars[++L] = countStr[i]; } } L++; if (R < N) chars[L] = chars[R]; count = 1; } else { count++; } R++; } chars.length = L; return chars.length; } // export function compress(chars: string[]) { // let L = 0; // let R = 1; // const N = chars.length; // let currentCounter = 1; // while (L <= N && R <= N) { // const curL = chars[L]; // const curR = chars[R]; // if (curL !== curR || curR === undefined) { // if (currentCounter > 1) { // [...("" + currentCounter)].forEach((item, i) => { // chars[L + 1 + i] = item; // }); // currentCounter = 1; // } // L = R; // } // if (curL === curR) { // currentCounter++; // chars[R] = " "; // } // R++; // } // for (let i = chars.length - 1; i >= 0; i--) { // if (chars[i] === " ") { // chars.splice(i, 1); // } // } // return chars.length; // }