leetcode_342. Power of Four 4的幂,按位与运算&,判断4的幂的情况
来源:互联网 发布:mac 微信 2.0.0 编辑:程序博客网 时间:2024/05/16 17:30
题目:
Given an integer (signed 32 bits), write a function to check whether it is a power of 4.
Example:
Given num = 16, return true. Given num = 5, return false.
Follow up: Could you solve it without loops/recursion?
题意:
给定一个整数,写一个函数判断它是否为4的幂
代码:
class Solution(object):
def isPowerOfFour(self, num):
"""
:type num: int
:rtype: bool
"""
if num <= 0 :
return False
else :
if num == 1 :
return True
else :
if num&(num-1) == 0 : #满足条件的话,则num是2的幂,形式为1000000;否则num不是2的幂,也不是4的幂
count = 0 #继续判断num中0的个数,如果0的个数为偶数个,则Num也是4的幂,否则不是4的幂
while num != 1 :
count = count + 1
num = num/2
if count%2 == 0 :
return True
else :
return False
else :
return False
笔记:
思路:
先用num&(num-1) == 0 判断num是否为2的幂,如果是,则继续判断num是否为4的幂(因为4的幂肯定为2的幂,但2的幂不一定都是4的幂,例如8)。通过计算num的二进制表示中0的个数来判断,如果0的个数为偶数个,则Num为4的幂,否则,num不是4的幂(也可以说是看Num能否被2整除偶数次,如果可以,则Num是4的幂,否则,不是4的幂)
虽然用了循环,但是效率还可以吧。
- leetcode_342. Power of Four 4的幂,按位与运算&,判断4的幂的情况
- leetcode_342 Power of Four
- leetcode_342. Power of Four分析
- leetcode 342. Power of Four 判断一个数是否为4的幂
- leet-code 342 4的幂判断 342. Power of Four
- 342. Power of Four (判断一个数是否为4的幂)
- leetcode 342. Power of Four 4的幂指数
- Power of Four | leetcode 四的幂
- LeetCode 342. Power of Four(4的n次幂)
- (LeetCode)Power of Four --- 4的次方,python实现
- LeetCode 342 Power of Four (位运算)
- Power of Four and Power of Three - 4的次方和3的次方
- leetcode. Power of Four-四次方|位运算
- Power of Two 判断一个数是不是2的幂
- Power of Two ----- 判断一个数是不是2的幂
- leetcode_231. Power of Two 判断2的幂
- 231. Power of Two | 判断2的幂
- 按位与&的运算
- GPIO接口解析
- 树的子结构[剑指offer]之python实现
- swift 变量与常量
- 通过Ajax方式上传文件,使用FormData进行Ajax请求
- luogu1038神经网络
- leetcode_342. Power of Four 4的幂,按位与运算&,判断4的幂的情况
- 第一讲:事物的隔离机制
- C语言——栈(Stack)
- HTTPS原理剖析与项目场景
- CodeForces - 709A Juicer
- Linux内核裁剪
- webstorage 和cookie的区别
- 高精度模板
- JNI与C++的数据类型转换