JSFiddle - React, Tailwind, and code Playground
by path411
JavaScript
function EncodeRunLength(input) {
var input = input.split('');
var length = 0;
var last = input[0];
var encoding = [];
for(var i=0, iL =input.length; i<iL; i++) {
var thischar = input[i];
if(thischar == last) {
length++;
}
else {
encoding.push([length, last]);
length = 1;
last = thischar;
}
}
encoding.push([length, last]);
return encoding;
}
function DecodeRunLength(input) {
var decoded = input.map(function(ele) {
return multiplyletter(ele[0],ele[1]);
});
function multiplyletter(iterations, letter) {
var output = '';
for(var i=0; i<iterations; i++) {
output += letter;
}
return output;
}
return decoded.join('');
}
console.log(EncodeRunLength('hi'));
console.log(EncodeRunLength('hhhiii'));
console.log(EncodeRunLength('Heeeeelllllooooo nurse!'));
console.log(DecodeRunLength([[1,'h'],[1,'i']]));
console.log(DecodeRunLength([[4,'h'],[4,'i']]));