415. 字符串相加

给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。

注意:

num1num2 的长度都小于5100.
num1num2 都只包含数字 0-9.
num1num2 都不包含任何前导零。
你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。

class Solution:
    def addStrings(self, num1, num2):
        """
        :type num1: str
        :type num2: str
        :rtype: str
        """
        res = 0
        
        if len(num1) < len(num2):
            short_num = num1[::-1]
            long_num = num2[::-1]
        else:
            short_num = num2[::-1]
            long_num = num1[::-1]
        

        for i in range(len(short_num)):  // 逐位相加
            curr = int(short_num[i]) + int(long_num[i])
            res += curr * (10 ** i)
        
        for j in range(i+1, len(long_num)):  // 将较长的补加上
            curr = int(long_num[j])
            res += curr * (10 ** j)
        
        return str(res)
posted @ 2018-07-24 17:55  yuyin  阅读(78)  评论(0编辑  收藏  举报