CTCI - Q.1.6
Basic String Compression
by Hari Menon
HTML
<pre id="output"></pre>
JavaScript
function compress(s) {
var prevChar = '',
counter = [],
split = s.split('');
for (var i = 0; i < split.length; i++) {
if (prevChar !== split[i]) {
counter.push({
char: split[i],
count: 1
});
prevChar = split[i];
} else {
counter[counter.length - 1].count = counter[counter.length - 1].count + 1;
}
}
return counter.map(function (c) {
return c.char + c.count;
}).join('');
}
var str = 'aaaaaaaaaaaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhgggyhujkklkkjkhkhkhkhkhkhkhkhkk;;;;k';
document.querySelector('#output').innerHTML = compress(str);