Find the Longest Balanced Substring of a Binary String
# 2609. Find the Longest Balanced Substring of a Binary String
You are given a binary string s consisting only of zeroes and ones.
A substring of s is considered balanced if all zeroes are before ones and the number of zeroes is equal to the number of ones inside the substring. Notice that the empty substring is considered a balanced substring.
Return the length of the longest balanced substring of s.
A substring is a contiguous sequence of characters within a string.
### Example 1: ``` Input: s = "01000111" Output: 6 Explanation: The longest balanced substring is "000111", which has length 6. ```
### Example 2: ``` Input: s = "00111" Output: 4 Explanation: The longest balanced substring is "0011", which has length 4. ```
Constraints: ``` 1 <= s.length <= 50 '0' <= s[i] <= '1' ```
/** * @param {string} s * @return {number} */ var findTheLongestBalancedSubstring = function(str) { let out = 0, counter = 0, stack = []; for (let i = 0; i < str.length; i++) { if (str[i] === '0') { stack.push(str[i]) continue; } if (stack.length && str[i] === '1') { counter += 2; stack.pop(); out = Math.max(counter, out); } if (str[i + 1] === '0') { counter = 0; stack = []; } } return out; };