LeetCode刷题:腾讯精选练习 50 题 231. 2的幂

前言

你好,我是Dr.叶子,用心写最优美的博客,弹最好听的钢琴!


 

1. 题目描述

【难易度:简单】

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


示例 1:

输入: 1
输出: true

解释: 2 0 = 1 2^0 = 1 20=1


示例 2:

输入: 16
输出: true

解释: 2 4 = 16 2^4 = 16 24=16


示例 3:

输入: 218
输出: false


 

2. 代码实现

  • Python3 实现 解法1:
class Solution:
    def isPowerOfTwo(self, n: int) -> bool:
        
        k = 0
        while True:
            if 2**k == n:
                return True
            elif 2**k > n:
                break
            k += 1
        return False

  • Python3 实现 解法2:位运算
class Solution:
    def isPowerOfTwo(self, n: int) -> bool:
		return n > 0 and n & (n - 1) == 0

在这里插入图片描述

 

3. 运行结果

  • 解法1:
    在这里插入图片描述

  • 解法2: 位运算
    在这里插入图片描述

 

4. 题目链接

腾讯精选练习 50 题 231. 2的幂.


 

后语

  1. 原创内容,转载说明出处哦!
  2. 以上内容本人整理,亲测可行,如有任何问题,敬请指正,谢谢~~
  3. 点赞、收藏、也欢迎打赏,我弹钢琴你听呀~~哈哈!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值