栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

剑指offer 2.二进制加法

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

剑指offer 2.二进制加法

二进制加法
  • 思路:创建一个指针来保存进位,创建空字符串保存当前的结果
    • 补充知识点

思路:创建一个指针来保存进位,创建空字符串保存当前的结果
def addStrings(num1: str, num2: str):
    res = ''
    i1, i2, carry = len(num1)-1,len(num2)-1,0
    while i1>=0 or i2>=0:
        x = ord(num1[i1]) - ord('0') if i1>=0 else 0
        y = ord(num2[i2]) - ord('0') if i2>=0 else 0
        sum =x + y + carry
        res += str(sum%2)
        carry = sum//2

        i1 -= 1
        i2 -= 1

    if carry == 1:
        res += '1'
    return res[::-1]
print(addStrings('101','1011'))
补充知识点
  • Python ord() 函数的使用
    描述:ord() 函数是 chr() 函数(对于8位的ASCII字符串)或 unichr() 函数(对于Unicode对象)的配对函数,它以一个字符(长度为1的字符串)作为参数,返回对应的 ASCII 数值,或者 Unicode 数值,如果所给的 Unicode 字符超出了你的 Python 定义范围,则会引发一个 TypeError 的异常。
    语法:ord©
    返回值:返回一个字符对应的ASCII码。
    实例:ord(‘a’)
    result:97
    将一个x字符转换为整数的方式
  • ord(x)-ord(‘0’)
    例如:“1”:ord(‘1’)-ord(‘0’)=1(int):ord(‘1’)= 49,ord(‘0’)=48
  • int()也可用于十进制的转换:int(‘1101’,2)=13(2进制转换成十进制),int(‘23’,8)=19(8进制转换成十进制)
  • 本题是为了避免使用到int()

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/862082.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号