Count number of binary strings without consecutive 1’s
Given a positive integer N, count all possible distinct binary strings of length N such that there are no consecutive 1’s.
Examples:
Input: N = 2
Output: 3
// The 3 strings are 00, 01, 10
Input: N = 3
Output: 5
// The 5 strings are 000, 001, 010, 100, 101
classSolution {// O(n) space solutionpublicstaticintcountStrings(int n) { // Let a[i] be the number of binary strings of length i which do not contain any two consecutive 1’s and which end in 0.
// Similarly, let b[i] be the number of such strings which end in 1.int a[] =newint[n];int b[] =newint[n]; a[0] = b[0] =1;for (int i =1; i < n; i++) { a[i] = a[i -1] + b[i -1]; b[i] = a[i -1]; }return a[n -1] + b[n -1]; }// O(1) space solutionpublicstaticintcountStrings(int n) {if (n ==0)return1;if (n ==1)return2;int a0 =1;int b0 =1;for (int i =1; i < n; i++) {int temp = a0 + b0; b0 = a0; a0 = temp; }return a0 + b0; }}