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