1
var parseBoolExpr = function (expression) {
2
let sol,
3
stack = [],
4
op = { t: true, f: false };
5
for (let i = 0; i < expression.length; i++) {
6
if (expression[i] != ")") {
7
if (expression[i] !== ",") stack.push(expression[i]);
8
} else {
9
let findings = [],
10
ko;
11
while (stack.slice(-1)[0] !== "(") {
12
findings.push(stack.pop());
13
}
14
stack.pop();
15
let operator = stack.pop();
16
if (operator == "|") {
17
ko = findings.reduce((a, b) => ((op[a] || op[b]) === true ? "t" : "f"));
18
}
19
if (operator == "&") {
20
ko = findings.reduce((a, b) => ((op[a] && op[b]) === true ? "t" : "f"));
21
}
22
if (operator == "!") {
23
ko = findings.pop() === "f" ? "t" : "f";
24
}
25
stack.push(ko);
26
}
27
}
28
return stack.pop() == "f" ? false : true;
29
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0