当前位置: 首页 > wzjs >正文

共创福州网站建设北京百度推广官网首页

共创福州网站建设,北京百度推广官网首页,网站内容被攻击该怎么做,第二波疫情最新消息今天公布190. 颠倒二进制位 颠倒给定的 32 位无符号整数的二进制位。 1. 字符串 class Solution:# param n, an integer# return an integerdef reverseBits(self, n):res "" # 创建一个保存结果的空字符串for b in str(bin(n))[2:]:# 遍历n的二进制数res b res # 把每…

190. 颠倒二进制位

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

1. 字符串

class Solution:# @param n, an integer# @return an integerdef reverseBits(self, n):res = "" # 创建一个保存结果的空字符串for b in str(bin(n))[2:]:# 遍历n的二进制数res = b + res # 把每一位从头部插入reswhile len(res) < 32:res += "0"return int(res, 2)
  • 执行过程:

    • 假设输入 n = 43261596(即二进制为00000010100101000001111010011100),反转过程如下:

    • 二进制字符串:bin(43261596) 得到 ‘0b10100101000001111010011100’,去掉 ‘0b’ 后得到 ‘10100101000001111010011100’

    • 反转字符串:遍历每一位,将其按顺序添加到 r 前面:

      • r = ‘0’
        r = ‘00’
        r = ‘000’
        r = ‘0000’
        (继续添加,直到所有位反转)
        最终得到r = ‘00111001011110000010100101000000’
    • 确保长度为 32 位:反转后的 r 已经是 32 位,所以无需额外填充0

    • 返回结果:将 r = ‘00111001011110000010100101000000’ 转换为整数,得到 964176192

  • 时间复杂度: O(n)

  • 空间复杂度: O(1)

2. 循环

class Solution:# @param n, an integer# @return an integerdef reverseBits(self, n):result = 0for i in range(32):result <<= 1  # 左移 result 为 1 位result |= (n & 1)  # 将 n 的最低有效位加到 result 中n >>= 1  # n 右移 1 位return result
  • 执行过程:
    • 第1 步(i = 0):
      num = 43261596 = 00000010100101000001111010011100
      提取最低有效位:num & 1 = 0(最低位是 0)
      result = result << 1 = 0 << 1 = 0(将 result 左移一位,为下一位腾出空间)
      result |= 0 → result = 0(将提取的位加到 result 中)
      num >>= 1 → num = 21630798(右移 num,去掉最低位)

    • 第 2 步(i = 1):
      num = 21630798 = 0000001010010100000111101001110
      提取最低有效位:num & 1 = 0(最低位是 0)
      result = result << 1 = 0 << 1 = 0
      result |= 0 → result = 0
      num >>= 1 → num = 10815399

    • 第 3 步(i = 2):
      num = 10815399 = 000000101001010000011110100111
      提取最低有效位:num & 1 = 1(最低位是 1)
      result = result << 1 = 0 << 1 = 0
      result |= 1 → result = 1(将提取的 1 加到 result 中)
      num >>= 1 → num = 5407699

    • 第 4 步(i = 3):
      num = 5407699 = 00000010100101000001111010011
      提取最低有效位:num & 1 = 1(最低位是 1)
      result = result << 1 = 1 << 1 = 2
      result |= 1 → result = 3
      num >>= 1 → num = 2703849

    • 第 5 步(i = 4):
      num = 2703849 = 0000001010010100000111101001
      提取最低有效位:num & 1 = 1(最低位是 1)
      result = result << 1 = 3 << 1 = 6
      result |= 1 → result = 7
      num >>= 1 → num = 1351924

    • 第 6 步(i = 5):
      num = 1351924 = 000000101001010000011110100
      提取最低有效位:num & 1 = 0(最低位是 0)
      result = result << 1 = 7 << 1 = 14
      result |= 0 → result = 14
      num >>= 1 → num = 675962
      …(继续这个过程直到处理完所有 32 位)

    • 直到第 32 步:
      经过 32 次循环,num 会变成 0,result 存储了反转后的二进制值

  • 时间复杂度: O(32) = O(1)
  • 空间复杂度: O(1)
http://www.dtcms.com/wzjs/240526.html

相关文章:

  • 网站制作是怎样做的广告公司品牌营销推广
  • 沈阳外贸网站建设谷歌排名推广公司
  • 上海网站建设哪种子搜索神器在线引擎
  • 搭建网站服务器广西seo快速排名
  • wordpress把文章转语音新区seo整站优化公司
  • 杭州网站建设哪家好百度收录接口
  • 做外贸哪几个网站好东莞公司网上推广
  • 动态网站制作软件2023适合小学生的新闻事件
  • 购物网站制作互联网广告代理可靠吗
  • 福州建站服务seo优化是做什么的
  • 中国菲律宾仁爱礁seo是什么软件
  • 靖江做网站的单位广州seo诊断
  • 住房和城乡建设部的网站首页优化网站建设
  • 河北石家庄网站建设百度推广投诉人工电话
  • SEO案例网站建设免费做网站网站的软件
  • 郑州哪些公司做网站建设企业推广策略
  • 怎么做网站能够增加人气百度竞价排名算法
  • 政府门户网站建设整改措施百度网站推广
  • 网站初期 权重怎么做全国广告投放平台
  • 现在宁波做网站宁波seo网络推广软件系统
  • 生物科技公司网站模板下载免费搜索引擎推广方法有哪些
  • 网站建设推广服务合同范本营销型企业网站建设步骤
  • net网站建设厦门seo推广优化
  • 摄影作品网站建设方案书东莞整站优化排名
  • 现在的网络怎么做网站今天今日新闻头条最新消息
  • 网站开发流程图和介绍中国人民银行网站
  • 个人做网站接装修活哪个网站好百度推广费用多少
  • 如何自己做门户网站新河seo怎么做整站排名
  • 东道设计公司官网首页东莞整站优化
  • 做网站感想网络宣传推广方案