Power of Two

题目描述

Given an integer, write a function to determine if it is a power of two.

解题方法

2的Power都是只有1个bit上为1的,所以利用 n & (n-1)消去最后一个为1的bit,然后再check是否为0,如果已经是0的话 那就是2的Power

Solution

class Solution(object):
    def isPowerOfTwo(self, n):
        """
        :type n: int
        :rtype: bool
        """
        if not n:
            return False
        n = n & (n-1)
        if n:
            return False
        else:
            return True

Reference