博客
关于我
LeetCode0190. 颠倒二进制位
阅读量:301 次
发布时间:2019-03-03

本文共 567 字,大约阅读时间需要 1 分钟。

一. 题目
  1. 题目

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

  2. 示例

    在这里插入图片描述

二. 方法一: 拼接 + 反转
  1. 解题思路

  2. 解题代码

    def reverseBits(self, n: int) -> int:    bin_num = bin(n)    size = 34 - len(bin_num)    result = "0b" + bin_num[-1: 1: -1] + "0" * size    return int(result, 2)
  3. 分析

    时间复杂度: O(1)
    空间复杂度: O(1)

三. 方法二
  1. 解题思路

    1. 先将输入的数字转成32位长的二进制数
    2. 然后再从右向左进行计算
    3. 算出最终结果即可
  2. 解题代码

    def reverseBits(self, n: int) -> int:    bin_num = bin(n)    size = 34 - len(bin_num)    bin_num = "0b" + "0" * size + bin_num[2:]    result = 0    for ele in bin_num[-1:1:-1]:        result = (result << 1) + int(ele)    return result
  3. 分析

    时间复杂度: O(1)
    空间复杂度: O(1)

转载地址:http://qium.baihongyu.com/

你可能感兴趣的文章
Mysql Row_Format 参数讲解
查看>>
mysql select, from ,join ,on ,where groupby,having ,order by limit的执行顺序和书写顺序
查看>>
MySQL Server 5.5安装记录
查看>>
mysql slave 停了_slave 停止。求解决方法
查看>>
MySQL SQL 优化指南:主键、ORDER BY、GROUP BY 和 UPDATE 优化详解
查看>>
mysql sum 没返回,如果没有找到任何值,我如何在MySQL中获得SUM函数以返回'0'?
查看>>
mysql Timestamp时间隔了8小时
查看>>
Mysql tinyint(1)与tinyint(4)的区别
查看>>
mysql union orderby 无效
查看>>
mysql where中如何判断不为空
查看>>
mysql workbench6.3.5_MySQL Workbench
查看>>
MySQL Workbench安装教程以及菜单汉化
查看>>
MySQL Xtrabackup 安装、备份、恢复
查看>>
mysql [Err] 1436 - Thread stack overrun: 129464 bytes used of a 286720 byte stack, and 160000 bytes
查看>>
MySQL _ MySQL常用操作
查看>>
MySQL – 导出数据成csv
查看>>
MySQL —— 在CentOS9下安装MySQL
查看>>
mysql 不区分大小写
查看>>
mysql 两列互转
查看>>
MySQL 中开启二进制日志(Binlog)
查看>>