-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathJavascript.js
30 lines (30 loc) · 948 Bytes
/
Javascript.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
let a = readline();
let binary = "";
let answer = "";
for (let i = 0; i < a.length; i++) {
let bin = a[i].charCodeAt(0).toString(2); //Converti un char en binaire
if (bin.length != 7) {
//Si il est pas codé sur 7 bits ajouté le nombre de 0 manquant au début
for (let a = 0; a < 7 - bin.length; a++) {
bin = "0" + bin;
}
}
binary += bin;
}
binary = binary.split("");
while (binary.length != 0) {
//Encode Process
let digit = binary[0]; //Récupére la premiére valeur du tableau
let count = "0";
for (let i = 1; i < binary.length; i++) {
//Compte le nombre d'occurance consécutive de digit
if (binary[i] == digit) {
count += "0";
} else {
break;
}
}
binary.splice(0, count.length); //Enléve les occurances trouvé au dessus
answer += (digit == 0 ? "00" : "0") + " " + count + " "; //0 ou 00 si digit est 1 ou 0
}
console.log(answer.slice(0, -1)); //Supprime l'espace de fin