Add Strings

Question

Given two non-negative integers num1 and num2 represented as string, return the sum of num1 and num2.

Note:

  1. The length of both num1 and num2 is < 5100.
  2. Both num1 and num2 contains only digits 0-9.
  3. Both num1 and num2 does not contain any leading zero.
  4. You must not use any built-in BigInteger library or convert the inputs to integer directly.

Tags

  • Maths
  • String

Thought

Use the similar method of Multiple Strings.

Code

class Solution(object):
    def addStrings(self, num1, num2):
        """
        :type num1: str
        :type num2: str
        :rtype: str
        """
        reversed_num1 = list(reversed(num1))
        reversed_num2 = list(reversed(num2))
        length = max(len(num1), len(num2))
        res = [0 for _ in xrange(length + 1)]
        for i in xrange(length):
            if i < len(reversed_num1):
                digit1 = reversed_num1[i]
            else:
                digit1 = '0'
            if i < len(reversed_num2):
                digit2 = reversed_num2[i]
            else:
                digit2 = '0'
            res[i] += int(digit1) + int(digit2)
            res[i + 1] += res[i] / 10
            res[i] %= 10
        while len(res) > 1 and res[-1] == 0:
            res.pop()
        return ''.join(map(str, reversed(res)))

results matching ""

    No results matching ""