Add-Binary——python

本文介绍了一种解决二进制字符串相加的方法。通过逐位相加并处理进位的方式,实现两个二进制字符串的加法运算,并返回结果作为新的二进制字符串。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

“””
给定两个二进制字符串,返回他们的和(用二进制表示)。
输入为非空字符串且只包含数字 1 和 0。
示例 1:
输入: a = “11”, b = “1”
输出: “100”
示例 2:
输入: a = “1010”, b = “1011”
输出: “10101”
Given two binary strings, return their sum (also a binary string).
For example, a = “11” b = “1” Return “100”.
“”“

class Solution(object):
    def addBinary(self, a, b):
        """
        :type a: str
        :type b: str
        :rtype: str
        """
        result = []
        carry = val = 0 #carry为进位
        if len(a) <len(b):
            a, b = b, a#交换a,b的值
        lenA = len(a)
        lenB = len(b)
        for i in range(lenA):
            val = carry
            val += int(a[-(i+1)])#从最后一位开始计算
            if i < lenB:
                val += int(b[-(i+1)])
            carry,val = val //2, val % 2 #判断是否有进位
            result.append(str(val))#填充最后一位
        if carry:
            result.append(str(carry))
        return "".join(result[::-1])#逆序输出

采取末尾添加,全部添加完后检测carry是否还有进位,有加在最后一位上,最后逆序输出就好!

### 如何解决Python exe打包过程中缺失的DLL文件问题 当使用 `PyInstaller` 或其他工具进行 Python 程序打包时,如果遇到 DLL 文件缺失的问题,可以采取以下措施来解决问题。 #### 选择合适的Python版本 对于某些特定的操作系统版本,如 Windows 7,建议使用兼容该操作系统的较低版本的 Python 进行打包。例如,可以选择 Python 3.8.5 的 32 位版本来进行打包工作[^2]。这有助于确保生成的可执行文件能够在目标操作系统上正常运行。 #### 修改导入方式减少依赖冲突 为了降低因模块导入而导致的潜在问题,推荐采用更精确的导入语句形式——即优先考虑使用 `from ... import ...` 而不是简单的 `import` 。后者可能会导致整个库被无差别地包含进来,增加了不必要的体积并可能引入额外的依赖项[^4]。 #### 处理特定模块错误 针对像 AkShare 打包成 EXE 后出现 `ModuleNotFoundError: No module named 'openpyxl.cell.writer'` 类似的错误情况,可能是由于某些子模块未能正确识别或加载所致。此时应仔细检查项目中的所有外部库及其版本是否匹配,并确认这些库已安装在用于构建的应用环境中[^3]。 #### 显式指定所需资源路径 有时即使选择了正确的解释器和调整了代码结构之后仍然会碰到找不到动态链接库的情况。这时可以通过 PyInstaller 提供的功能手动添加必要的二进制文件或者设置环境变量使它们能够被发现: - **通过命令行参数**:可以在调用 PyInstaller 时利用 `--add-binary` 参数显式指明要加入到最终发行版里的 .dll 文件的位置; ```bash python -m PyInstaller your_script.py --add-binary "path_to_dll;." ``` - **修改 spec 文件**:也可以编辑由 PyInstaller 自动生成的 `.spec` 配置文档,在其中增加相应的数据条目以囊括那些重要的支持文件; - **设定 PATH 变量**:临时扩展当前进程所使用的搜索目录列表以便于定位丢失的目标组件。 综上所述,以上几种策略结合起来往往能有效应对大多数关于缺少 dll 的挑战。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值