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