Dota2 Senate LeetCode solution in JavaScript

1
var predictPartyVictory = function (senate) {
2
let index = 0,
3
RCount = 0,
4
DCount = 0,
5
deletion = false,
6
delCount = 1;
7
while (delCount || index < senate.length) {
8
if (index >= senate.length) {
9
index = 0;
10
delCount = 0;
11
}
12
deletion = false;
13
if (senate.charAt(index) == "R") {
14
if (DCount > 0) {
15
senate = senate.slice(0, index) + senate.slice(index + 1);
16
DCount--;
17
index--;
18
deletion = true;
19
delCount++;
20
} else {
21
RCount++;
22
}
23
} else if (senate.charAt(index) == "D") {
24
if (RCount > 0) {
25
senate = senate.slice(0, index) + senate.slice(index + 1);
26
RCount--;
27
index--;
28
deletion = true;
29
delCount++;
30
} else {
31
DCount++;
32
}
33
}
34
if (index == senate.length - 1) {
35
if (
36
senate.charAt(0) == "R" &&
37
senate.charAt(index) == "D" &&
38
DCount > 0 &&
39
!deletion
40
) {
41
senate = senate.slice(1);
42
DCount--;
43
index = -1;
44
} else if (
45
senate.charAt(0) == "D" &&
46
senate.charAt(index) == "R" &&
47
RCount > 0 &&
48
!deletion
49
) {
50
senate = senate.slice(1);
51
RCount--;
52
index = -1;
53
}
54
}
55
index++;
56
}
57
return senate.charAt(0) == "D" ? "Dire" : "Radiant";
58
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0