Given a positive integer N, the task is to count all possible distinct binary strings of length N such that there are no consecutive 1’s.
Input: N = 5
The non-negative integers <= 5 with their corresponding binary representations are:
0 : 0
1 : 1
2 : 10
3 : 11
4 : 100
5 : 101
Among them, only 3 has two consecutive 1’s. Therefore required count = 5
Input: N = 12
Approach: In this article, an approach using the concept of digit-dp is discussed.
- Similar to the digit-dp problem, a 3-dimensional table is created here to store the computed values. It is assumed that the N < 231 – 1, and the range of every number is only 2 (Either 0 or 1). Therefore, the dimensions of the table are taken as 32 x 2 x 2.
- After constructing the table, the given number is converted to a binary string.
- Then, the number is iterated. For every iteration:
- Check if the previous digit is a 0 or 1.
- If it is a 0, then the present number can either be a 0 or 1.
- But if the previous number is 1, then the present number has to be 0 because we can’t have two consecutive 1’s in the binary representation.
- Now, the table is exactly filled like the digit-dp problem.
Below is the implementation of the above approach
Time Complexity: O(L * log(N))
- O(log(N)) to convert the number from Decimal to binary.
- O(L) to fill the table, where L is the length of the binary form.
Don’t stop now and take your learning to the next level. Learn all the important concepts of Data Structures and Algorithms with the help of the most trusted course: DSA Self Paced. Become industry ready at a student-friendly price.
- Count number of binary strings without consecutive 1's
- Count of binary strings of length N with even set bit count and at most K consecutive 1s
- Count of Binary strings of length N having atmost M consecutive 1s or 0s alternatively exactly K times
- Find the number of binary strings of length N with at least 3 consecutive 1s
- Count number of binary strings of length N having only 0's and 1's
- Count number of binary strings such that there is no substring of length greater than or equal to 3 with all 1's
- Generate all binary strings without consecutive 1's
- Count strings with consecutive 1's
- Count of sub-strings with equal consecutive 0's and 1's
- Count of non-overlapping sub-strings "101" and "010" in the given binary string
- Count of binary strings of given length consisting of at least one 1
- Count binary strings with twice zeros in first half
- Python | Check if there are K consecutive 1's in a binary number
- Count of strings possible by replacing two consecutive same character with new character
- Find consecutive 1s of length >= n in binary representation of a number
- Count of distinct XORs formed by rearranging two Binary strings
- Count binary strings with k times appearing adjacent two set bits
- Length of longest consecutive zeroes in the binary representation of a number.
- Maximum number of consecutive 1's in binary representation of all the array elements
- Count ways to express a number as sum of consecutive numbers
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.