<p>Given a binary string <code>s</code> and an integer <code>k</code>, return <code>true</code> <em>if every binary code of length</em> <code>k</code> <em>is a substring of</em> <code>s</code>. Otherwise, return <code>false</code>.</p> <p> </p> <p><strong>Example 1:</strong></p> <pre> <strong>Input:</strong> s = "00110110", k = 2 <strong>Output:</strong> true <strong>Explanation:</strong> The binary codes of length 2 are "00", "01", "10" and "11". They can be all found as substrings at indices 0, 1, 3 and 2 respectively. </pre> <p><strong>Example 2:</strong></p> <pre> <strong>Input:</strong> s = "0110", k = 1 <strong>Output:</strong> true <strong>Explanation:</strong> The binary codes of length 1 are "0" and "1", it is clear that both exist as a substring. </pre> <p><strong>Example 3:</strong></p> <pre> <strong>Input:</strong> s = "0110", k = 2 <strong>Output:</strong> false <strong>Explanation:</strong> The binary code "00" is of length 2 and does not exist in the array. </pre> <p> </p> <p><strong>Constraints:</strong></p> <ul> <li><code>1 <= s.length <= 5 * 10<sup>5</sup></code></li> <li><code>s[i]</code> is either <code>'0'</code> or <code>'1'</code>.</li> <li><code>1 <= k <= 20</code></li> </ul>