题目描述:

给定一个正整数,输出它的补数。补数是对该数的二进制表示取反。

注意:

  1. 给定的整数保证在32位带符号整数的范围内。
  2. 你可以假定二进制数不包含前导零位。

示例 1:

输入: 5
输出: 2
解释: 5的二进制表示为101(没有前导零位),其补数为010。所以你需要输出2。

示例 2:

输入: 1
输出: 0
解释: 1的二进制表示为1(没有前导零位),其补数为0。所以你需要输出0。

解题思路:

  1. 先得到给定数字的二进制形式
  2. 从后往前(从低位到高位)遍历二进制字符串
  3. 由于要取反,因此遇到0则加上这一位相应的权,遇到1 则不变

代码实现:

class Solution:def findComplement(self, num: int) -> int:bin = self.getBinary(num)n = 0  # n 用于存储权值之和i = 0for x in bin[-1: :-1]:  # 从低位向高位遍历if x == '0':n += 2**ielse:passi += 1return ndef getBinary(self, t):  # 这个函数用于得到二进制字符串s = ''while t > 1 :s += str(t % 2)t = int(t/2)s += str(t)ss = s[::-1]return ss

关注我的公众号免费获取海量python 学习资料!!!

LeetCode刷题(python)——476. 数字的补数相关推荐

  1. LeetCode刷题Python实录

    使用Python的LeetCode刷题 前言 题目 1408. 数组中的字符串匹配 508. 出现次数最多的子树元素和 1089. 复写零 剑指 Offer 14- I. 剪绳子 1175. 质数排列 ...

  2. 【代码】LeetCode刷题Python版

    python版LeetCode 算法部分 811. 子域名访问计数 class Solution:def subdomainVisits(self, cpdomains):""&q ...

  3. 【Leetcode刷题Python】40. 组合总和 II

    1 题目 给定一个候选人编号的集合 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合. candidates 中的每个数字在每 ...

  4. C#LeetCode刷题之#374-猜数字大小(Guess Number Higher or Lower)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3993 访问. 我们正在玩一个猜数字游戏. 游戏规则如下: 我从 ...

  5. 【Leetcode刷题Python】494. 目标和

    1 题目 给你一个整数数组 nums 和一个整数 target . 向数组中的每个整数前添加 '+' 或 '-' ,然后串联起所有整数,可以构造一个 表达式 : 例如,nums = [2, 1] ,可 ...

  6. 【Leetcode刷题Python】516. 最长回文子序列

    1 题目 给你一个字符串 s ,找出其中最长的回文子序列,并返回该序列的长度. 子序列定义为:不改变剩余字符顺序的情况下,删除某些字符或者不删除任何字符形成的一个序列. 示例 1: 输入:s = &q ...

  7. 【Leetcode刷题Python】714. 买卖股票的最佳时机含手续费

    1 题目 给定一个整数数组 prices,其中 prices[i]表示第 i 天的股票价格 :整数 fee 代表了交易股票的手续费用. 你可以无限次地完成交易,但是你每笔交易都需要付手续费.如果你已经 ...

  8. 【Leetcode刷题Python】55. 跳跃游戏

    1 题目 给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 . 数组中的每个元素代表你在该位置可以跳跃的最大长度. 判断你是否能够到达最后一个下标. 示例 1: 输入:nums = [2 ...

  9. 【Leetcode刷题Python】生词本单词整理

    1 题目 小A最近在努力学习英语.小A有一本生词本,专门用来记录见到的生词.每次小A看到一个自己不认识的单词时,就会把这个生词抄写到生词本上.经过几个月的学习之后,小A想对这个生词本上的单词进行整理. ...

  10. 【Leetcode刷题Python】416. 分割等和子集

    1 题目 给你一个 只包含正整数 的 非空 数组 nums .请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等. 示例 1: 输入:nums = [1,5,11,5] 输出:true ...

最新文章

  1. VR與AI的激情相遇
  2. leetcode 106. Construct Binary Tree from Inorder and Postorder Traversal | 106. 从中序后序遍历序列构造二叉树(Java)
  3. 【华为云技术分享】Sketch插件技术 — 让研发和设计高效协同
  4. 《Algorithms》—— Dijkstra 的双栈算术表达式求值算法
  5. 极域电子教室软件怎么脱离控制_新疆灵感科技技术汇总~LED控制卡常见软、硬件问题...
  6. 分析ERP上线时可能存在的失误
  7. java 面向对象之内存管理
  8. 关于matlab的图像显示方法
  9. 2022年版中国石油焦市场运行现状调研与前景动态分析报告
  10. 梯形面积php,梯形的面积公式是什么
  11. Nvidia GPU 最新计算能力表(CUDA Compute Capability)
  12. strcmp与strncmp与memcmp的区别
  13. 键盘录入一个长方形的长和宽(长和宽为int类型),计算长方形的面积和周长
  14. android用bmob实现评论,Bmob在Android上的应用
  15. md5update java_JAVA实现MD5算法
  16. 保姆级-天翼网关TEWA-700G、TEWA-1000E/G等系列光猫获取超级密码
  17. python爬取税务局并将数据保存在Excel
  18. java红牛农场答案_Java面向对象程序设计实验指导与习题解答
  19. 修改Listen 1源码的一点心得
  20. kibana远端访问配置

热门文章

  1. TopCoder介绍
  2. docker部署Discuz论坛
  3. 5-1 厘米换算英尺英寸 (15分) PTA
  4. SSM框架+WebSocket实现网页聊天(Spring+SpringMVC+MyBatis+WebSocket)
  5. 怎么权衡不同类型项目的收益产出比 ROI?
  6. 中文信息处理实验2——基于词表的分词
  7. element-ui dialog遮罩层在最上层,关掉dialog遮罩层还在
  8. [附源码]计算机毕业设计JAVAjsp在线视频网站
  9. Xen,Hypervisor,XenServer的关系
  10. Citrix实践(三)——安装XenCenter管理XenServer