Given an integer, write a function to determine if it is a power of two.
解题思路:
看起来很简单的一道题,竟然一开始没有任何思路。不过看了提示还是自己又忘记了n&(n-1)。(n&(n-1))==0的含义,n的最高有效位为1,其余位为0。因此,n的值是2的某次方。所以,(n&(n-1))==0检查n是否为2的某次方(或者检查n是否为0)
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
class Solution(object):
def isPowerOfTwo(self, n):
"""
:type n: int
:rtype: bool
"""
return (n>0 and n&(n-1)==0)
网友评论