【python】Leetcode(primer-binary)

news2024/11/15 15:38:24

在这里插入图片描述

文章目录

  • 504. 七进制数(进制转换)
  • 461. 汉明距离(进制转换 / 异或)
  • 136. 只出现一次的数字(位运算)

更多 leetcode 题解可参考:【Programming】


504. 七进制数(进制转换)

给定一个整数,将其转化为7进制,并以字符串形式输出。

  • 示例 1:
    输入: 100
    输出: “202”
    示例 2:

  • 输入: -7
    输出: “-10”

  • 注意: 输入范围是 [-1e7, 1e7] 。

class Solution(object):
    def convertToBase7(self, num):
        """
        :type num: int
        :rtype: str
        """
        nums = abs(num)
        s = ''
        # 这里只对大于0的数算 7 进制
        while (nums):
            a = nums % 7 
            nums = nums // 7
            s = s+ str(a)

        if num > 0:
            return s[::-1] # 倒序输出计算结果
        elif num < 0:
            return '-'+s[::-1] # 负数添加一个负号
        else:
            return '0' # 0 的话直接返回 0

461. 汉明距离(进制转换 / 异或)

两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。

给出两个整数 x 和 y,计算它们之间的汉明距离。

注意:
0 ≤ x, y < 231.

  • 示例:
    输入: x = 1, y = 4
    输出: 2
    解释:
    1   (0 0 0 1)
    4   (0 1 0 0)
           ↑   ↑

上面的箭头指出了对应二进制位不同的位置。

思路,计算二进制,然后比不同的位置

class Solution(object):
    def hammingDistance(self, x, y):
        """
        :type x: int
        :type y: int
        :rtype: int
        """
        # 计算二进制逆序(方便后面的高位补0),结果存在列表中,
        def bin_num(x):
            list1 = []
            while(x):
                list1.append(x%2)
                x = x//2
            return list1
        
        bin_x = bin_num(x)
        bin_y = bin_num(y)
        
        len_x = len(bin_x)
        len_y = len(bin_y)
        
        # 把两个二进制的长度补成一样的
        if len_x < len_y:
            bin_x.extend([0]*(len_y-len_x))
        else:
            bin_y.extend([0]*(len_x-len_y))
            
        # 统计不一样的个数
        num = 0
        for i in range(len(bin_x)):
            if bin_x[i]!=bin_y[i]:
                num+=1
        return num

还有一种比较快的方法是直接计算异或(相同为1,不同为0)

class Solution(object):
    def hammingDistance(self, x, y):
        """
        :type x: int
        :type y: int
        :rtype: int
        """

        return bin(x^y).count('1')

补充,异或运算的性质

  1. a ⊕ a = 0
  2. a ⊕ 0 = a
  3. a ⊕ b = b ⊕ a,交换律
  4. a ⊕b ⊕ c = a ⊕ (b ⊕ c) = (a ⊕ b) ⊕ c,结合律
  5. d = a ⊕ b ⊕ c 可以推出 a = d ⊕ b ⊕ c.
  6. a ⊕ b ⊕ a = b.
  7. a ⊕b=b ⊕c => a=b,消去律

相关题目

1720. 解码异或后的数组


136. 只出现一次的数字(位运算)

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

说明:

你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?

示例 1:

输入: [2,2,1]
输出: 1
示例 2:

输入: [4,1,2,1,2]
输出: 4


思路:利用异或运算的性质,自己和自己异或结果为 0, 和 0 异或结果为本身
在这里插入图片描述

在这里插入图片描述

作者:LeetCode-Solution
链接:https://leetcode-cn.com/problems/single-number/solution/zhi-chu-xian-yi-ci-de-shu-zi-by-leetcode-solution/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

class Solution(object):
    def singleNumber(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        res = 0
        for num in nums:
            res ^= num
        return res

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/922373.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python学习 -- 类的继承

类继承是面向对象编程中的重要概念&#xff0c;它允许我们创建一个新的类&#xff0c;通过继承已有的类的属性和方法&#xff0c;从而实现代码的重用和扩展。Python作为一门面向对象的编程语言&#xff0c;提供了强大而灵活的类继承机制。本篇博客将深入探讨Python中类继承的概…

全国规模最大!算力并网行动开启

8月19日&#xff0c;在2023中国算力大会主论坛上&#xff0c;中国移动携手多个超算中心、智算中心&#xff0c;以及云服务商&#xff0c;共同发起全国规模最大的“百川”算力并网行动&#xff0c;打造算力类型最全、规模最大、覆盖最广的“百川”算力并网平台&#xff0c;加快推…

ngix详解

ngix是什么 Nginx是一款轻量级、高性能的Web服务器、反向代理服务器&#xff0c;由于它的内存占用少&#xff0c;启动极快&#xff0c;高并发能力强&#xff0c;在互联网项目中广泛应用。 正向代理&#xff1a; 客户端访问服务器时&#xff0c;统一通过一个代理服务器把请求…

Flutter实现动画列表AnimateListView

由于业务需要&#xff0c;在打开列表时&#xff0c;列表项需要一个从右边飞入的动画效果&#xff0c;故封装一个专门可以执行动画的列表组件&#xff0c;可以自定义自己的动画&#xff0c;内置有水平滑动&#xff0c;缩放等简单动画。花里胡哨的动画效果由你自己来定制吧。 功…

在本地搭建Jellyfin影音服务器,支持公网远程访问影音库的方法分享

文章目录 1. 前言2. Jellyfin服务网站搭建2.1. Jellyfin下载和安装2.2. Jellyfin网页测试 3.本地网页发布3.1 cpolar的安装和注册3.2 Cpolar云端设置3.3 Cpolar本地设置 4.公网访问测试5. 结语 1. 前言 随着移动智能设备的普及&#xff0c;各种各样的使用需求也被开发出来&…

爆火「视频版ControlNet」开源了!靠提示词精准换画风,全华人团队出品

“视频版ControlNet”来了&#xff01; 让蓝衣战神秒变迪士尼公举&#xff1a; 视频处理前后&#xff0c;除了画风以外&#xff0c;其他都不更改。 女孩说话的口型都保持一致。 正在插剑的姜文&#xff0c;也能“下一秒”变猩球崛起了。 这就是由全华人团队打造的最新视频处理…

四川玖璨电子商务有限公司:怎么拉升抖店体验分

抖音是中国最受欢迎的短视频分享平台之一&#xff0c;而在抖音上开设自己的抖店成为许多电商从业者的选择。为了提高抖店的曝光度和用户体验&#xff0c;抖店体验分成为了一个重要的指标。在本文中&#xff0c;小编将从两个方面来讨论怎么拉升抖店体验分&#xff0c;包括影响因…

你真的理解 shell 中的 $?

$? 是一个特殊变量&#xff0c;用于获取上一个命令或函数的退出状态码&#xff0c;这里要注意的是状态码和返回值是不同的概念。在函数中我们可以使用返回标志 return&#xff0c;return 的返回值会作为退出状态码供 $? 截取&#xff0c;当函数没有 return 返回值时&#xff…

【Jellyfin影音服务器】 本地部署公网远程影音库

文章目录 1. 前言2. Jellyfin服务网站搭建2.1. Jellyfin下载和安装2.2. Jellyfin网页测试 3.本地网页发布3.1 cpolar的安装和注册3.2 Cpolar云端设置3.3 Cpolar本地设置 4.公网访问测试5. 结语 1. 前言 随着移动智能设备的普及&#xff0c;各种各样的使用需求也被开发出来&…

程序员至少要掌握几种编程语言?来看看这些编程语言的优势和用途

你可能听说过&#xff0c;作为一个程序员&#xff0c;你要学习很多种编程语言&#xff0c;才能应对各种不同的项目和需求。那么&#xff0c;程序员最少要掌握几种编程语言呢&#xff1f;其实&#xff0c;这个问题没有一个确定的答案&#xff0c;因为不同的编程语言有不同的优势…

若依vue打印的简单方法

像我们后端程序员做前端的话,有时候真不需要知道什么原理,直接塞就好了 我们选用基于hiprint 的vue-plugin-hiprint来打印 目的是为了实现点击某些行的数据,然后点击某个按钮直接弹出下面的打印 此链接 大佬是原创,我拿来总结梳理一下 插件进阶功能请移步: 链接 插件模板制作页…

直播购物系统开发定制:融合技术与个性化的未来购物体验

在数字化时代&#xff0c;直播购物已经成为了商业领域的一大趋势。而通过直播购物系统开发定制&#xff0c;商家能够更好地满足消费者的个性化需求&#xff0c;为购物体验带来前所未有的变革。在本文中&#xff0c;我们将探讨如何通过技术手段来实现直播购物系统的开发定制&…

Layer Normalization(层规范化)

详细内容在这篇论文&#xff1a;Layer Normalization 训练深度神经网络需要大量的计算&#xff0c;减少计算时间的一个有效方法是规范化神经元的活动&#xff0c;例如批量规范化BN&#xff08;batch normalization&#xff09;技术&#xff0c;然而&#xff0c;批量规范化对小批…

【若依管理系统 权限控制】

1.在菜单管理添加按钮权限&#xff0c;如图 2.在角色管理里面加上菜单&#xff0c;如图 3.前端控制&#xff1a; 4.后端控制&#xff1a; 5.重启后台后&#xff0c;重新登录用户。

无涯教程-Python - Dictionary(字典)

每个键都由一个冒号(:)与其值分隔&#xff0c;各元素之间以逗号分隔&#xff0c;并且整个内容都用花括号括起来。一个没有任何元素的空字典用两个大括号书写&#xff0c;如:{}。 键在字典中是唯一的&#xff0c;而值可能不是。字典的值可以是任何类型&#xff0c;但是键必须是…

【机器学习7】特征缩放

特征缩放 &#x1f340;特征缩放的重要性&#x1f331;归一化&#x1f331;标准化&#x1f331;更高级的缩放方法&#x1f338;导入数据集&将数据集划分为训练集和测试集&#x1f338;Sklearn-Learn算法实现归一化&#x1f338;Sklearn-Learn算法实现标准化 &#x1f340;特…

Activity 的启动流程(Android 13)

Activity 的启动过程分为两种&#xff1a;一种是普通 Activity 的启动过程&#xff0c;另一种是根 Activity 的启动过程。普通 Activity 指的是除应用程序启动的第一个 Activity 之外的其他 Activity。根 Activity 指的是应用程序启动的第一个 Activity&#xff0c;因此&#x…

春秋云镜 :CVE-2020-21650(MyuCMS后台rce)

一、题目 靶标介绍&#xff1a; MyuCMS开源内容管理系统,采用ThinkPHP开发而成的社区商城聚合&#xff0c;插件&#xff0c;模板&#xff0c;轻便快捷容易扩展 其2.2版本中admin.php/config/add方法存在任意命令执行漏洞. 进入题目&#xff1a; exp&#xff1a; url/index.p…

计算机网络 QA

DNS 的解析过程 浏览器缓存。当用户通过浏览器访问某域名时&#xff0c;浏览器首先会在自己的缓存中查找是否有该域名对应的 IP 地址&#xff08;曾经访问过该域名并且没有清空缓存&#xff09;系统缓存。当浏览器缓存中无域名对应的 IP 地址时&#xff0c;会自动检测用户计算机…

opencv 进阶20-随机森林示例

OpenCV中的随机森林是一种强大的机器学习算法&#xff0c;旨在解决分类和回归问题。随机森林使用多个决策树来进行预测&#xff0c;每个决策树都是由随机选择的样本和特征组成的。在分类问题中&#xff0c;随机森林通过投票来确定最终的类别&#xff1b;在回归问题中&#xff0…