自定义加法规则的二进制数字序列按位相加实现求助
核心错误梳理
- 循环内重复初始化结果变量
Code,每次迭代都会清空之前的计算结果 - Python字符串为不可变类型,无法通过下标直接修改单字符,
str.replace()方法会返回新字符串而非修改原对象 - 你定义的加法规则等价于二进制按位异或运算,无需手动做加法判断,可以直接用异或逻辑简化实现
满足需求的完整实现代码
# 按位异或加法实现 def mutate_code_add(code1: str, code2: str) -> str: # 校验输入长度符合要求 if not (4 <= len(code1) <= 26 and 4 <= len(code2) <= 26): raise ValueError("输入编码长度需在4-26位范围内") if len(code1) != len(code2): raise ValueError("两组输入编码长度需保持一致") # 逐位异或计算 res = [] for a, b in zip(code1, code2): res.append(str(int(a) ^ int(b))) return ''.join(res) # 测试用例 Code1 = '100100' Code2 = '101011' print(mutate_code_add(Code1, Code2)) # 输出 001111
极简写法(仅用于已知输入合法的场景)
如果已经提前确认输入长度、格式都符合要求,可以直接用一行代码实现:
Code = ''.join(str(int(a) ^ int(b)) for a,b in zip(Code1, Code2))
内容的提问来源于stack exchange,提问作者Caitlin Kermen
相关产品推荐
相关产品推荐

