Skip to content

Commit

Permalink
Create add-strings.py
Browse files Browse the repository at this point in the history
  • Loading branch information
kamyu104 authored Oct 9, 2016
1 parent 3f3f075 commit 883b826
Showing 1 changed file with 36 additions and 0 deletions.
36 changes: 36 additions & 0 deletions Python/add-strings.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Time: O(n)
# Space: O(1)

# Given two non-negative numbers num1 and num2 represented as string,
# return the sum of num1 and num2.
#
# Note:
#
# The length of both num1 and num2 is < 5100.
# Both num1 and num2 contains only digits 0-9.
# Both num1 and num2 does not contain any leading zero.
# You must not use any built-in BigInteger library or
# convert the inputs to integer directly.

class Solution(object):
def addStrings(self, num1, num2):
"""
:type num1: str
:type num2: str
:rtype: str
"""
result = []
i, j, carry = len(num1) - 1, len(num2) - 1, 0

while i >= 0 or j >= 0 or carry:
if i >= 0:
carry += ord(num1[i]) - ord('0');
i -= 1
if j >= 0:
carry += ord(num2[j]) - ord('0');
j -= 1
result.append(str(carry % 10))
carry /= 10
result.reverse()

return "".join(result)

0 comments on commit 883b826

Please sign in to comment.