题解 | #大数加法#

大数加法

https://www.nowcoder.com/practice/11ae12e8c6fe48f883cad618c2e81475

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 计算两个数之和
# @param s string字符串 表示第一个整数
# @param t string字符串 表示第二个整数
# @return string字符串
#
# 与链表的加法相似,将两个字符串逆序后从低位开始相加
# 最后要转换成字符串形式输出
class Solution:
    def solve(self , s: str, t: str) -> str:
        tempS = s[::-1]
        tempT = t[::-1]
        m, n = len(s), len(t)
        if m < n:
            tempS, tempT = tempT, tempS
            m, n = n, m
        
        ans = [0 for _ in range(m+1)]
        for i in range(n):
            temp = int(tempS[i]) + int(tempT[i]) + ans[i]
            ans[i] = str(temp % 10)
            ans[i+1] += temp // 10
        
        for i in range(n, m):
            temp = int(tempS[i]) + ans[i]
            ans[i] = str(temp % 10)
            ans[i+1] += temp // 10
        
        if ans[-1] == 0:
            ans.pop()
        else:
            ans[-1] = str(ans[-1])
        
        return ''.join(ans[::-1])

全部评论

相关推荐

头像
不愿透露姓名的神秘牛友
05-27 11:41
已编辑
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务