human
What is a code to number of Binary Strings of length N with K adjacent Set Bits and the other steps required given the following:
Number of Binary Strings of length N with K adjacent Set Bits | Function to find the number of Bit Strings of length N with K adjacent set bits.
Base Case when we form bit string of length n.
if f ( bit string ) = k , count this way.
Check if the last bit was set , if it was set then call for next index by incrementing the adjacent bit count else just call the next index with same value of adjacent bit count and either set the bit at current index or let it remain unset.
set the bit at currentIndex.
unset the bit at currentIndex.
Driver Code.
total ways = ( ways by placing 1 st bit as 1 + ways by placing 1 st bit as 0 )"
How can the above be solved in Python?
assistant
#Here is code to number of Binary Strings of length N with K adjacent Set Bits and the other steps required.
 def waysToKAdjacentSetBits ( n , k , currentIndex , adjacentSetBits , lastBit ) :
	if ( currentIndex == n ) :
		if ( adjacentSetBits == k ) :
			return 1 ;
		return 0
	noOfWays = 0
	if ( lastBit == 1 ) :
		noOfWays += waysToKAdjacentSetBits ( n , k , currentIndex + 1 , adjacentSetBits + 1 , 1 ) ;
		noOfWays += waysToKAdjacentSetBits ( n , k , currentIndex + 1 , adjacentSetBits , 0 ) ;
	elif ( lastBit != 1 ) :
		noOfWays += waysToKAdjacentSetBits ( n , k , currentIndex + 1 , adjacentSetBits , 1 ) ;
		noOfWays += waysToKAdjacentSetBits ( n , k , currentIndex + 1 , adjacentSetBits , 0 ) ;
	return noOfWays ;
n = 5 ; k = 2 ;
totalWays = ( waysToKAdjacentSetBits ( n , k , 1 , 0 , 1 ) + waysToKAdjacentSetBits ( n , k , 1 , 0 , 0 ) ) ;
print ( " Number ▁ of ▁ ways ▁ = " , totalWays ) ;