zoukankan      html  css  js  c++  java
  • LeetCode--190--颠倒二进制位

    问题描述:

    颠倒给定的 32 位无符号整数的二进制位。

    示例:

    输入: 43261596
    输出: 964176192
    解释: 43261596 的二进制表示形式为 00000010100101000001111010011100 ,
         返回 964176192,其二进制表示形式为 00111001011110000010100101000000 

    进阶:
    如果多次调用这个函数,你将如何优化你的算法?

    方法1:常规操作,易错点在给头部补0.

    1 class Solution:
    2     # @param n, an integer
    3     # @return an integer
    4     def reverseBits(self, n):
    5         input_b = bin(n)
    6         input_b = input_b[2:]
    7         input_b = "0"*(32-len(input_b))+input_b
    8         input_b = input_b[::-1]
    9         return int(input_b,2)

    方法2:

    1 class Solution:
    2     # @param n, an integer
    3     # @return an integer
    4     def reverseBits(self, n):
    5         res='{0:032b}'.format(n)#注意转换成32为无符号整形,res=bin(n)在这里会出错,ide不会
    6         res=res[::-1]#翻转
    7         res=int(res,2)
    8         return res

    方法3:

    1 class Solution:
    2     # @param n, an integer
    3     # @return an integer
    4     def reverseBits(self, n):
    5         binary_n = bin(n)
    6         reversed_n = ''.join(reversed('{:032d}'.format(int(binary_n[2:]))))
    7         return int(reversed_n, 2)

     2018-09-16 07:48:24

  • 相关阅读:
    Linux三剑客awk命令试题
    Linux综合练习题
    Linux系统用户角色划分
    Linux添加磁盘fdisk命令
    Linux的七种运行级别
    Linux 文件类型
    Linux开机启动程序
    Linux软件安装
    linux运行级别
    Linux /etc目录下的重要配置文件
  • 原文地址:https://www.cnblogs.com/NPC-assange/p/9654943.html
Copyright © 2011-2022 走看看