Maximum Score From Removing Substrings LeetCode solution in JavaScript
1var maximumGain = function (s, x, y) {2const n = s.length;34let totPoints = 0;5let stack;67if (x > y) {8stack = remove(s, x, "ab");9s = stack.join("");10remove(s, y, "ba");11} else {12stack = remove(s, y, "ba");13s = stack.join("");14remove(s, x, "ab");15}1617return totPoints;1819function remove(str, points, match) {20const stack = [];2122for (let i = 0; i < str.length; i++) {23const char = str.charAt(i);2425if (stack.length > 0 && stack[stack.length - 1] + char == match) {26totPoints += points;27stack.pop();28} else {29stack.push(char);30}31}3233return stack;34}35};