https://leetcode.com/problems/power-of-two

This is classical bit manipulation problem for n & (n-1) trick, which removes the last non-zero bit from our number

example: 1.n = 100000, then n - 1 = 011111 and n & (n-1) = 000000, so if it is power of two, result is zero 2.n = 101110, then n - 1 = 101101 and n & (n-1) = 101100, number is not power of two and result is not zero.

class Solution:
    def isPowerOfTwo(self, n):
        return n > 0 and not (n & n-1)

Update there is another O(1) solution using math: number is power of 2 if it is divisor of the biggest possible power of 2:

return n > 0 and (1<<32) % n == 0

If you like the solution, you can upvote it on leetcode discussion section: Problem 0231