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);