LeetCode:231. 2的幂

1、题目描述

给定一个整数,编写一个函数来判断它是否是 2 的幂次方。

示例 1:

输入: 1
输出: true
解释: 20 = 1

示例 2:

输入: 16
输出: true
解释: 24 = 16

示例 3:

输入: 218
输出: false

2、题解

2.1、解法一

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

        while n%2 == 0:
            n = n//2
        return True if n == 1 else False

2.2、解法二

class Solution(object):
    def isPowerOfTwo(self, n):
        """
        :type n: int
        :rtype: bool
        """
        if n == 0:
            return False
        while n%2 == 0:
            n = n>>1
        return True if n == 1 else False

  

猜你喜欢

转载自www.cnblogs.com/bad-robot/p/10066327.html