Skip to main content

2696.js

/** ------------------------------------------------------------------------------
*
* 2696. Minimum String Length After Removing Substrings
* Topics: String, Stack
* https://leetcode.com/problems/minimum-string-length-after-removing-substrings/description/?envType=daily-question&envId=2024-10-07
*
------------------------------------------------------------------------------ */
/**
* @param {string} s
* @return {number}
*/
var minLength = function (s) {
while (true) {
const isExistAB = s.includes("AB")
const isExistCD = s.includes("CD")
if (!isExistAB && !isExistCD) return s.length

if (isExistAB) s = s.replace("AB", "")
if (isExistCD) s = s.replace("CD", "")
}
}

/**
* stack
*/
var minLength = function (s) {
const stack = []

for (let char of s) {
switch (true) {
case stack.length === 0:
stack.push(char)
break

case char === "B" && stack[stack.length - 1] === "A":
case char === "D" && stack[stack.length - 1] === "C":
stack.pop()
break
default:
stack.push(char)
}
}

return stack.length
}

console.log(minLength("ABFCACDB"))