Count Binary Substrings

Given a binary string s, return the number of non-empty substrings that have the same number of 0's and 1's, and all the 0's and all the 1's in these substrings are grouped consecutively.

Substrings that occur multiple times are counted the number of times they occur.

Example 1
Inputs = "00110011"
Output6
There are 6 substrings that have equal numbers of consecutive 1's and 0's: "0011", "01", "1100", "10", "0011", and "01"; repeated substrings are counted each time they occur, and "00110011" is invalid because all the 0's and 1's are not grouped together.
Example 2
Inputs = "10101"
Output4
There are 4 substrings: "10", "01", "10", and "01" that have equal numbers of consecutive 1's and 0's.

Constraints

  • 1 <= s.length <= 10^5
  • s[i] is either '0' or '1'.

Asked at 18 companies

Practice questions like this out loud in a mock coding interview with a live AI interviewer. First one free.

Your Solution

(Ctrl/Cmd + Enter)

Switching Language

Loading template...

Sign in to save your progress

AI code evaluation

Get a correctness verdict, what to keep, what's wrong, and the complexity of your solution.

Sign in to evaluate