DEV Community

Cover image for March LeetCoding Challenge 2021 — Day 12: Check If a String Contains All Binary Codes of Size K
Sourav
Sourav

Posted on

March LeetCoding Challenge 2021 — Day 12: Check If a String Contains All Binary Codes of Size K

Today, we will solve the 12 th problem of the March LeetCoding Challenge.

Problem Statement

Given a binary string s and an integer k.

Return True if every binary code of length k is a substring of s. Otherwise, return False.

Example 1:

**Input:** s = "00110110", k = 2
**Output:** true
**Explanation:** The binary codes of length 2 are "00", "01", "10" and "11". They can be all found as substrings at indicies 0, 1, 3 and 2 respectively.
Enter fullscreen mode Exit fullscreen mode

Example 2:

**Input:** s = "00110", k = 2
**Output:** true
Enter fullscreen mode Exit fullscreen mode

Example 3:

**Input:** s = "0110", k = 1
**Output:** true
**Explanation:** The binary codes of length 1 are "0" and "1", it is clear that both exist as a substring.
Enter fullscreen mode Exit fullscreen mode

Example 4:

**Input:** s = "0110", k = 2
**Output:** false
**Explanation:** The binary code "00" is of length 2 and doesn't exist in the array.
Enter fullscreen mode Exit fullscreen mode

Example 5:

**Input:** s = "0000000001011100", k = 4
**Output:** false
Enter fullscreen mode Exit fullscreen mode

Solution

In this problem, we are asked to find whether we have all the binary codes of size k in a given string.

We know that for a given size k, we can have a total of 2^k numbers. We need to check whether all of those 2^k numbers are present in the given string. For that, we can use a HashSet , to store all the values which we have found out. In the end, we can compare the size of HashSet and 2^k , if they are equal then return true else return false.

The code is given below.



Time Complexity: O(n)

Space Complexity: O(n)

The code can be found here

LeetCode

I have been solving Leetcode problems for around a year or so. Suddenly I have developed a passion of writing tutorials for these problems. I am starting with Leetcode problem, in future I will try to make tutorials on Spring,Android,Java,Algorithms and many more.

Follow me on medium - https://sourav-saikia.medium.com
Follow me on dev.to - https://dev.to/sksaikia
Follow me on twitter - https://twitter.com/sourav__saikia
Connect on Linkedin - www.linkedin.com/in/sourav-kumar-saikia

The following table contains all the problems with their respective solution tutorials. I will try to add more articles to it soon.

March LeetCoding Challenge

Check out my other posts on March LeetCoding Challenge 2021.

  1. March LeetCoding Challenge — Day 1 — Distribute Candies

  2. March LeetCoding Challenge — Day 2 — Set Mismatch

  3. March LeetCoding Challenge — Day 3 — Missing Number

  4. March LeetCoding Challenge — Day 4 — Intersection of Two Linked Lists

  5. March LeetCoding Challenge — Day 5 — Average of Levels in Binary Tree

  6. March LeetCoding Challenge — Day 6 — Short Encoding of Words

  7. March LeetCoding Challenge — Day 8 — Remove Palindromic Subsequences

  8. March LeetCoding Challenge — Day 10 — Integer to Roman

Top comments (0)