leetcode刷题笔记342 4的幂
生活随笔
收集整理的這篇文章主要介紹了
leetcode刷题笔记342 4的幂
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目描述:
給定一個整數 (32位有符整數型),請寫出一個函數來檢驗它是否是4的冪。
示例:
當 num = 16 時 ,返回 true 。 當 num = 5時,返回 false。
問題進階:你能不使用循環/遞歸來解決這個問題嗎?
?
題目分析:
如231題同樣思路,還是通過位操作來解決這道
首先判斷下輸入為0和負數的情況
然后分析4的冪的特點0,4,16
化為二進制0,0100,00010000
跟求2的冪不同的是此處少了2,8
化為2進制? ?,0010,00001000
| 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
| 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
? 4
? 8
?
我們嘗試使用位操作將2,8過濾掉
?
解答代碼:
C++版:
class Solution { public:bool isPowerOfFour(int n) {if (n<=0) return false;return ((n&(n-1))==0 && ((n&0x55555555)));} }; CodePython版:
class Solution:def isPowerOfFour(self, num):""" :type num: int:rtype: bool""" if num<=0:return Falsereturn ((num&(num-1))==0 and (bool(num&0x55555555))) Code?
轉載于:https://www.cnblogs.com/qflyue/p/8973355.html
總結
以上是生活随笔為你收集整理的leetcode刷题笔记342 4的幂的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1.什么是数据化运营——《数据挖掘与数据
- 下一篇: 第五次会议记录:开始进一步需求分析,及初