# 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; };