str.split('').map(symbol => symbol.charCodeAt(0).toString(2).padStart(7, '0')).join('');
const encodeValue = cnt => ''.padStart(cnt, '0');
const values = [];
const add = (digit, count) => values.push((digit === '1' ? '0' : '00') + ' ' + encodeValue(count));
let value = binary[0], cnt = 1;
for (let i = 1; i < binary.length; i++) {
if (binary[i] !== value) {
add(value, cnt);
value = binary[i];
cnt = 1;
continue;
}
cnt++;
}
add(value, cnt);
return values.join(' ');
}
а зачем строку сплитать, если её и так можно перебрать?
Обсуждают сегодня