java.lang.Object
g0601_0700.s0696_count_binary_substrings.Solution

public class Solution extends Object
696 - Count Binary Substrings.<p>Easy</p> <p>Give a binary string <code>s</code>, return the number of non-empty substrings that have the same number of <code>0</code>&rsquo;s and <code>1</code>&rsquo;s, and all the <code>0</code>&rsquo;s and all the <code>1</code>&rsquo;s in these substrings are grouped consecutively.</p> <p>Substrings that occur multiple times are counted the number of times they occur.</p> <p><strong>Example 1:</strong></p> <p><strong>Input:</strong> s = &ldquo;00110011&rdquo;</p> <p><strong>Output:</strong> 6</p> <p><strong>Explanation:</strong></p> <pre><code> There are 6 substrings that have equal number of consecutive 1's and 0's: &quot;0011&quot;, &quot;01&quot;, &quot;1100&quot;, &quot;10&quot;, &quot;0011&quot;, and &quot;01&quot;. Notice that some of these substrings repeat and are counted the number of times they occur. Also, &quot;00110011&quot; is not a valid substring because all the 0's (and 1's) are not grouped together. </code></pre> <p><strong>Example 2:</strong></p> <p><strong>Input:</strong> s = &ldquo;10101&rdquo;</p> <p><strong>Output:</strong> 4</p> <p><strong>Explanation:</strong> There are 4 substrings: &ldquo;10&rdquo;, &ldquo;01&rdquo;, &ldquo;10&rdquo;, &ldquo;01&rdquo; that have equal number of consecutive 1&rsquo;s and 0&rsquo;s.</p> <p><strong>Constraints:</strong></p> <ul> <li><code>1 <= s.length <= 10<sup>5</sup></code></li> <li><code>s[i]</code> is either <code>'0'</code> or <code>'1'</code>.</li> </ul>
  • Constructor Details

    • Solution

      public Solution()
  • Method Details

    • countBinarySubstrings

      public int countBinarySubstrings(String s)