Given a number N. The task is to check whether there is pair of adjacent set bit or not in the binary representation of number.
NOTE: If the number has pair of adjacent set bits return "Yes" else return "No".
Example 1:
Input: n = 1
Output: "No" 
Explanation: There is no pair of adjacent 
set bit in the binary representation of 1.
Example 2:
Input: n = 3
Output: "Yes"
Explanation: There is pair of adjacent
set bit present in the binary 
representation of 3(0011).
Your Task:  
You dont need to read input or print anything. Complete the function isAdjacentSetBits() which takes n as input parameter and returns "Yes" If the number has pair of adjacent set bits else "No".
Expected Time Complexity: O(1)
Expected Auxiliary Space: O(1)
Constraints:
1<= n <=10^{11}

Source: geeksforgeeks | Difficulty: EASY
Tags: Mathematics

Starter code: #User function Template for python3
class Solution:
    def isAdjacentSetBits (ob, n):
        # code here 

Solutions:
class Solution:

	def isAdjacentSetBits(ob, n):
		m = bin(n)
		a = str(m)[2:]
		if '11' in a:
			return 'Yes'
		else:
			return 'No'


class Solution:

	def isAdjacentSetBits(ob, n):
		prev = 0
		while n != 0:
			if n % 2 != 0:
				cur = 1
				if cur == 1 and prev == 1:
					return 'Yes'
				else:
					prev = cur
			else:
				cur = 0
				prev = cur
			n = n >> 1
		return 'No'


class Solution:

	def isAdjacentSetBits(ob, n):
		x = bin(n)[2:]
		if '11' in x:
			return 'Yes'
		else:
			return 'No'


class Solution:

	def isAdjacentSetBits(ob, n):
		s = bin(n)
		if '11' in s:
			return 'Yes'
		return 'No'


class Solution:

	def isAdjacentSetBits(ob, n):
		a = bin(n).replace('0b', '')
		r = '0'
		for i in a:
			if i == '1' and r[len(r) - 1] == '1':
				return 'Yes'
			else:
				r += i
		return 'No'


class Solution:

	def isAdjacentSetBits(ob, n):
		s = bin(n)
		s = s[2:]
		if '11' in s:
			return 'Yes'
		return 'No'
if __name__ == '__main__':
	t = int(input())
	for _ in range(t):
		n = int(input())
		ob = Solution()
		print(ob.isAdjacentSetBits(n))


class Solution:

	def isAdjacentSetBits(ob, n):
		if n & n >> 1:
			return 'Yes'
		return 'No'
if __name__ == '__main__':
	t = int(input())
	for _ in range(t):
		n = int(input())
		ob = Solution()
		print(ob.isAdjacentSetBits(n))


class Solution:

	def isAdjacentSetBits(self, n):
		if n <= 2:
			return 'No'
		if n & 3 == 3:
			return 'Yes'
		n >>= 1
		return self.isAdjacentSetBits(n)


class Solution:

	def isAdjacentSetBits(ob, n):
		k = str(bin(n)[2:])
		for m in range(len(k) - 1):
			if k[m] == '1' and k[m + 1] == '1':
				return 'Yes'
		return 'No'


class Solution:

	def isAdjacentSetBits(ob, n):
		count = 0
		while n != 0:
			if n & 1 != 0:
				count += 1
				n = n >> 1
			else:
				count = 0
				n = n >> 1
			if count == 2:
				return 'Yes'
		return 'No'


import math

class Solution:

	def isAdjacentSetBits(ob, n):
		if n & n >> 1 != 0:
			return 'Yes'
		return 'No'


class Solution:

	def isAdjacentSetBits(ob, n):
		k = bin(n)
		k = k[2:]
		for i in range(len(k) - 1):
			if k[i] == '1' and k[i + 1] == '1':
				return 'Yes'
		else:
			return 'No'


class Solution:

	def isAdjacentSetBits(ob, n):
		b = bin(n)
		b = list(b)
		c = 0
		for i in range(len(b) - 1):
			if b[i] == '1' and b[i + 1] == '1':
				c += 1
		if c > 0:
			return 'Yes'
		else:
			return 'No'


class Solution:

	def isAdjacentSetBits(ob, n):
		if '11' in str(bin(n)[2:]):
			return 'Yes'
		return 'No'