Python Leetcode(415.字符串相加)

Python Leetcode(415.字符串相加)

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

注意:

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

Solution:(题目要求不能直接把字符串转换为整数,可以计算每个字符与0的ASCII码的相对偏移,就相当于得到了字符的整数形式,设置两个指针,以及carry位进行计算)

class Solution(object):
    def addStrings(self, num1, num2):
        """
        :type num1: str
        :type num2: str
        :rtype: str
        """
        res = ''
        carry, i, j = 0, len(num1)-1, len(num2)-1
        
        while i >= 0 or j >= 0 or carry > 0:
            if i >= 0:
                carry += ord(num1[i]) - ord('0')
            if j >= 0:
                carry += ord(num2[j]) - ord('0')
            res += str(carry%10)
            carry = carry // 10
            i -= 1
            j -= 1
        return res[::-1]
solution = Solution()
print(solution.addStrings('1234', '4321'))
5555

你可能感兴趣的:(Python,LeetCode)