字符串相加
Add Strings
本机进度仅保存在当前浏览器
题目描述
给定两个以字符串形式表示的非负整数 num1 和 num2(不能直接转整数或用内置大数库),返回它们相加结果的字符串形式。
示例:num1 = "456",num2 = "77",输出 "533"。
解题思路
- 模拟竖式加法:从末位开始对齐,逐位相加并维护进位。
- 循环条件是两串未耗尽或进位非零——"或进位"是最容易漏的分支。
- 结果逐位追加后整体反转即答案。
参考实现
查看参考实现Python · 建议先自行作答
def addStrings(num1, num2):
# 从末位起模拟竖式加法
i, j, carry = len(num1) - 1, len(num2) - 1, 0
digits = []
while i >= 0 or j >= 0 or carry:
s = carry
if i >= 0:
s += int(num1[i])
i -= 1
if j >= 0:
s += int(num2[j])
j -= 1
digits.append(s % 10)
carry = s // 10
return ''.join(map(str, reversed(digits)))