1. 程式人生 > >LeetCode--231--2的冪函

LeetCode--231--2的冪函

div pre 示例 lee wid false 問題 bject tco

問題描述:

給定一個整數,編寫一個函數來判斷它是否是 2 的冪次方。

示例 1:

輸入: 1
輸出: true
解釋: 2

0

 = 1

示例 2:

輸入: 16
輸出: true
解釋: 2

4

 = 16

示例 3:

輸入: 218
輸出: false

方法1:

 1 import math
 2 class Solution(object):
 3     def isPowerOfTwo(self, n):
 4         """
 5         :type n: int
 6         :rtype: bool
 7         """
 8         if
n % 2 != 0 and n != 1 or n < 0 : 9 return False 10 width = int((math.sqrt(n))) 11 for i in range(width+2): 12 if math.pow(2,i) == n: 13 return True 14 elif math.pow(2,i) > n: 15 return False 16 return False

方法2:二進制

 1 class Solution(object):
 2     def isPowerOfTwo(self, n):
 3         """
 4         :type n: int
 5         :rtype: bool
 6         """
 7         if n <= 0:
 8             return False
 9 
10         return bin(n).count(1) == 1

方法3:

1 class Solution(object):
2     def isPowerOfTwo(self, n):
3 """ 4 :type n: int 5 :rtype: bool 6 """ 7 while n%2 == 0 and n>1: 8 n = n/2 9 return (n==1)

2018-09-20 06:58:15

LeetCode--231--2的冪函