zoukankan      html  css  js  c++  java
  • LeetCode 190 _ 位运算

    1. 题目描述

     2. 代码

    1 class Solution:
    2     def reverseBits(self, n: int) -> int:
    3         return int ( bin(n)[2:].zfill(32)[::-1], 2)

    思路: 先把输入的整数转换为二进制, 若不够32位则填充上0, 再反转, 最后输出十进制.

     补充代码:

     1 class Solution:
     2     def reverseBits(self, n: int) -> int:
     3         l = [0] * 32 #n的二进制表示
     4         pos = 0
     5         while n != 0:#获得n的二进制表示
     6             cur = n % 2
     7             l[pos] = cur
     8             pos += 1
     9             n = n // 2
    10         l.reverse()#将n的二进制反转, 为了以下十进制转二进制的时候对应位相乘匹配第13行i的从0-31.
    11         
    12         ret = 0
    13         for i in range(32):#计算n的二进制反转的值
    14             cur = l[i]
    15             ret += cur * pow(2,i)
    16         return ret

    3. 语法整理

    3.1 bin(): 十进制转二进制.

    1 n=5
    2 print(bin(5))
    3 
    4 0b101

    3.2 zfill()方法返回指定长度的字符串, 原字符串右对齐, 前面填充0.

    3.3 切片[::-1]

    1 import numpy as np
    2 a=np.random.rand(5)
    3 print(a)
    4 print(a[::-1]) #取从后向前(相反)的元素
    [0.85778706 0.31132653 0.8227913  0.00911271 0.83932792]
    [0.83932792 0.00911271 0.8227913  0.31132653 0.85778706]

    3.4 int函数: int(x, base=10)

    https://www.runoob.com/python/python-func-int.html   , 来自菜鸟教程.

    • x -- 字符串或数字.
    • base -- 进制数, 默认十进制.
    1 print(int('0b1010',2))

    10

     3.5 比较 / 和 //

     右移1位相当于除以2.

     左移1位相当于乘以2.

    3.6 pow(x,y): x**y 运算后的值.

  • 相关阅读:
    Cocos2Dx for XNA类解析(1): CCApplication
    struts2动态调用action的方法
    python导出依赖包
    python 字符串split()方法
    struts2使用通配符调用action
    python3重新编译
    Jquery中html()、text()、val()的使用和区别
    Javascript写在<body>和<head>中的区别
    设计模式Design Pattern(2)单例模式
    设计模式Design Pattern(1)简介
  • 原文地址:https://www.cnblogs.com/vvzhang/p/13747078.html
Copyright © 2011-2022 走看看