JSFiddle - React, Tailwind, and code Playground
by Sudheer Nunna
JavaScript
var compress = function(chars) {
if(!chars.length) return 0;
let curr = chars[0];
let cnt = 0;
let idx = 0;
for(let i = 0; i <= chars.length; ++i) {
if(curr === chars[i]) {
cnt++;
} else {
chars[idx] = curr;
if(cnt > 1) {
const ch = cnt.toString();
for(let j = 0; j < ch.length; ++j) chars[++idx] = ch[j];
}
idx++;
curr = chars[i];
cnt = 1;
}
}
return idx;
};
console.log(compress(["a","a","b","b","c","c","c"]));