java.lang.Object
g1501_1600.s1573_number_of_ways_to_split_a_string.Solution

public class Solution extends Object
1573 - Number of Ways to Split a String.<p>Medium</p> <p>Given a binary string <code>s</code>, you can split <code>s</code> into 3 <strong>non-empty</strong> strings <code>s1</code>, <code>s2</code>, and <code>s3</code> where <code>s1 + s2 + s3 = s</code>.</p> <p>Return the number of ways <code>s</code> can be split such that the number of ones is the same in <code>s1</code>, <code>s2</code>, and <code>s3</code>. Since the answer may be too large, return it <strong>modulo</strong> <code>10<sup>9</sup> + 7</code>.</p> <p><strong>Example 1:</strong></p> <p><strong>Input:</strong> s = &ldquo;10101&rdquo;</p> <p><strong>Output:</strong> 4</p> <p><strong>Explanation:</strong> There are four ways to split s in 3 parts where each part contain the same number of letters &lsquo;1&rsquo;.</p> <p>&ldquo;1|010|1&rdquo;</p> <p>&ldquo;1|01|01&rdquo;</p> <p>&ldquo;10|10|1&rdquo;</p> <p>&ldquo;10|1|01&rdquo;</p> <p><strong>Example 2:</strong></p> <p><strong>Input:</strong> s = &ldquo;1001&rdquo;</p> <p><strong>Output:</strong> 0</p> <p><strong>Example 3:</strong></p> <p><strong>Input:</strong> s = &ldquo;0000&rdquo;</p> <p><strong>Output:</strong> 3</p> <p><strong>Explanation:</strong> There are three ways to split s in 3 parts.</p> <p>&ldquo;0|0|00&rdquo;</p> <p>&ldquo;0|00|0&rdquo;</p> <p>&ldquo;00|0|0&rdquo;</p> <p><strong>Constraints:</strong></p> <ul> <li><code>3 <= 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

    • numWays

      public int numWays(String s)