human
Can you provide a code to find Next Sparse Number and the other steps required given the following:
Find Next Sparse Number | Python3 program to find next sparse number.
Find binary representation of x and store it in bin [ ] . bin [ 0 ] contains least significant bit ( LSB ) , next bit is in bin [ 1 ] , and so on ..
There my be extra bit in result , so add one extra bit.
The position till which all bits are finalized.
Start from second bit ( next to LSB ).
If current bit and its previous bit are 1 , but next bit is not 1..
Make the next bit 1.
Make all bits before current bit as 0 to make sure that we get the smallest next number.
Store position of the bit set so that this bit and bits before it are not changed next time ..
Find decimal equivalent of modified bin [ ].
Driver Code"
How can the above be solved in Python?
assistant
#Here is code to find Next Sparse Number and the other steps required.
 def nextSparse ( x ) :
	bin = [ ]
	while ( x != 0 ) :
		bin . append ( x & 1 )
		x >>= 1
	bin . append ( 0 )
	last_final = 0
	for i in range ( 1 , n - 1 ) :
		if ( ( bin [ i ] == 1 and bin [ i - 1 ] == 1 and bin [ i + 1 ] != 1 ) ) :
			bin [ i + 1 ] = 1
			for j in range ( i , last_final - 1 , - 1 ) :
				bin [ j ] = 0
			last_final = i + 1
	ans = 0
	for i in range ( n ) :
		ans += bin [ i ] * ( 1 << i )
	return ans
if __name__ == ' _ _ main _ _ ' :
	x = 38
	print ( " Next ▁ Sparse ▁ Number ▁ is " , nextSparse ( x ) )