数字范围按位与Python解法
生活随笔
收集整理的這篇文章主要介紹了
数字范围按位与Python解法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
給你兩個整數?left?和?right?,表示區間?[left, right]?,返回此區間內所有數字?按位與?的結果(包含?left?、right?端點)。
例:
輸入:left = 5, right = 7 輸出:4# 解析:因為0與任何值與都為0,而這個區間又是連續的,所以只需要判斷頭和尾的最小公共前綴即可,中間部分一定會被0消掉。如圖:
?
class Solution(object):def rangeBitwiseAnd(self, left, right):""":type left: int:type right: int:rtype: int"""i = 0 # 位數計數while left != right: # 當邊界不相同時left >>= 1 # 左邊界右移一位right >>= 1 # 右邊界右移一位i += 1 # 計數器加一return left << i # 想等后再左移之前移動的位數即可總結
以上是生活随笔為你收集整理的数字范围按位与Python解法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 两个字符串的删除操作Python解法
- 下一篇: 天眼查升级“天眼图谱”,上线“股权全景穿