摘要:描述給定一個整數(shù)位有符號整數(shù),請編寫一個函數(shù)來判斷它是否是的冪次方。出現(xiàn)在奇數(shù)位,那么此數(shù)與與運算為本身。何睿何睿數(shù)字不為零的二級制只有一個中的位置出現(xiàn)在第位,或第位,或第位源代碼文件在這里。
Description
Given an integer (signed 32 bits), write a function to check whether it is a power of 4.
Example 1:
Input: 16
Output: true
Example 2:
Input: 5
Output: false
Follow up: Could you solve it without loops/recursion?
給定一個整數(shù) (32 位有符號整數(shù)),請編寫一個函數(shù)來判斷它是否是 4 的冪次方。
示例 1:
輸入: 16
輸出: true
示例 2:
輸入: 5
輸出: false
進階:
你能不使用循環(huán)或者遞歸來完成本題嗎?
一個數(shù)若是 4 的冪次方,那么這個數(shù)的二進制表示只有一個 1。
并且這個數(shù)的1 出現(xiàn)在(從右往左) 第 1,或 3,或 5 ,或 7 ... 位。
一個數(shù) num 只有一個 1 那么,num 和 num -1 與運算結(jié)果為 0。
1 出現(xiàn)在奇數(shù)位,那么此數(shù)與 1010101010101010101010101010101 與運算為 num 本身。
# -*- coding: utf-8 -*- # @Author: 何睿 # @Create Date: 2019-04-08 16:58:04 # @Last Modified by: 何睿 # @Last Modified time: 2019-04-08 17:11:49 class Solution: def isPowerOfFour(self, num: "int") -> "bool": # num 數(shù)字不為零 # num 的二級制只有一個 1 # num 中 1 的位置出現(xiàn)在第 1 位,或第 3 位,或第5 ... 位 return num != 0 and num & ( num - 1) == 0 and num & 0b1010101010101010101010101010101 == num
源代碼文件在 這里 。
?本文首發(fā)于 何睿的博客 ,歡迎轉(zhuǎn)載,轉(zhuǎn)載需保留 文章來源 ,作者信息和本聲明.
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/43533.html
摘要:整除法復(fù)雜度時間空間思路最簡單的解法,不斷將原數(shù)除以,一旦無法整除,余數(shù)不為,則說明不是的冪,如果整除到,說明是的冪。二進制位計數(shù)法復(fù)雜度時間空間思路的冪有一個特性,就是它的二進制表達中只有開頭是,后面全是。 Power of Two Given an integer, write a function to determine if it is a power of two. 整除法...
摘要:月下半旬攻略道題,目前已攻略題。目前簡單難度攻略已經(jīng)到題,所以后面會調(diào)整自己,在刷算法與數(shù)據(jù)結(jié)構(gòu)的同時,攻略中等難度的題目。 Create by jsliang on 2019-07-30 16:15:37 Recently revised in 2019-07-30 17:04:20 7 月下半旬攻略 45 道題,目前已攻略 100 題。 一 目錄 不折騰的前端,和咸魚有什么區(qū)別...
摘要:在線網(wǎng)站地址我的微信公眾號完整題目列表從年月日起,每天更新一題,順序從易到難,目前已更新個題。這是項目地址歡迎一起交流學(xué)習(xí)。 這篇文章記錄我練習(xí)的 LeetCode 題目,語言 JavaScript。 在線網(wǎng)站:https://cattle.w3fun.com GitHub 地址:https://github.com/swpuLeo/ca...我的微信公眾號: showImg(htt...
三道基本相同的題目,都可以用位操作、遞歸和迭代來做。 Power of Two 1. Bit Manipulation -- 2 ms beats 21.88% public class Solution { public boolean isPowerOfTwo(int n) { return n>0 && (n&(n-1))==0; } } 2. Iterat...
摘要:題目要求判斷一個整數(shù)是否是的冪。思路和代碼當(dāng)我們從二進制的角度來看,這個題目就非常簡單了。其實題目的要求等價于該整數(shù)對應(yīng)的二進制數(shù)中,一共有幾個。該題目的難點在于考慮邊界情況,比如,即。 題目要求 Given an integer, write a function to determine if it is a power of two. 判斷一個整數(shù)是否是2的冪。 思路和代碼 當(dāng)我...
閱讀 3352·2021-11-22 15:22
閱讀 2877·2021-10-12 10:12
閱讀 2171·2021-08-21 14:10
閱讀 3837·2021-08-19 11:13
閱讀 2856·2019-08-30 15:43
閱讀 3238·2019-08-29 16:52
閱讀 456·2019-08-29 16:41
閱讀 1444·2019-08-29 12:53