leetcode-字符串相加

415. 字符串相加

题目中已经说明不能使用库函数直接将输入的字符串转换为整数。这就需要我们自己实现大数加法的逻辑,我们可以从两个字符串的最后一位开始,逐位相加,同时记录进位。如果某一位相加的结果超过10,那么需要向前进位。最后将结果转换为字符串返回

python 复制代码
class Solution:
    def addStrings(self, num1: str, num2: str) -> str:
        res = []
        carry = 0
        p1, p2 = len(num1) - 1, len(num2) - 1
        while p1 >= 0 or p2 >= 0:
            x1 = ord(num1[p1]) - ord('0') if p1 >= 0 else 0
            x2 = ord(num2[p2]) - ord('0') if p2 >= 0 else 0
            tmp = x1 + x2 + carry
            carry = tmp // 10
            res.append(tmp % 10)
            p1 -= 1
            p2 -= 1
        if carry:
            res.append(carry)
        return "".join(str(x) for x in res[::-1])
相关推荐
历程里程碑14 分钟前
滑动窗口最大值:单调队列高效解法
数据结构·算法·leetcode
youngee112 小时前
hot100-61电话号码的字母组合
java·数据结构·leetcode
POLITE33 小时前
Leetcode 76.最小覆盖子串 JavaScript (Day 6)
javascript·算法·leetcode
一起养小猫4 小时前
LeetCode100天Day6-回文数与加一
java·leetcode
POLITE34 小时前
Leetcode 234.回文链表 JavaScript (Day 9)
javascript·leetcode·链表
only-qi7 小时前
leetcode2. 两数相加
算法·leetcode
2401_841495648 小时前
【LeetCode刷题】寻找重复数
数据结构·python·算法·leetcode·链表·数组·重复数
leoufung10 小时前
LeetCode 120. Triangle:从 0 分到 100 分的思考过程(含二维 DP 与空间优化)
linux·算法·leetcode
先做个垃圾出来………11 小时前
53. 最大子数组和
算法·leetcode