-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
44 lines (37 loc) 路 1.17 KB
/
Copy pathindex.js
File metadata and controls
44 lines (37 loc) 路 1.17 KB
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
// ** Significado de s铆mbolos: **
// "#" Incrementa el valor num茅rico en 1.
// "@" Decrementa el valor num茅rico en 1.
// "*" Multiplica el valor num茅rico por s铆 mismo.
// "&" Imprime el valor num茅rico actual.
// ** Ejemplos de entrada: **
// Entrada: "##*&"
// Salida esperada: "4"
// Explicaci贸n: Incrementa (1), incrementa (2), multiplica (4), imprime (4).
// Entrada: "&##&*&@&"
// Salida esperada: "0243"
// Explicaci贸n: Imprime (0), incrementa (1), incrementa (2), imprime (2), multiplica (4), imprime (4), decrementa (3), imprime (3).
const message =
'&###@&*&###@@##@##&######@@#####@#@#@#@##@@@@@@@@@@@@@@@*&&@@@@@@@@@####@@@@@@@@@#########&#&##@@##@@##@@##@@##@@##@@##@@##@@##@@##@@##@@##@@##@@##@@##@@&';
const compiler = (message) => {
let solution = [];
let number = 0;
for (let i = 0; i < message.length; i++) {
let current = message[i];
switch (current) {
case '#':
number += 1;
break;
case '@':
number -= 1;
break;
case '*':
number *= number;
break;
case '&':
solution.push(number);
break;
}
}
return solution.join('');
};
console.log(compiler(message));