Add Strings

String Math

Problem

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

Thought Process

  • This is very similar to Add Binary

  • Have to remember that we can have potentailly have carry so we need a variable for this

Solution

class Solution:
    def addStrings(self, num1: str, num2: str) -> str:
        i = len(num1)-1
        j = len(num2)-1
        carry = 0
        res = ""
        
        while i>=0 or j >= 0:
            numSum = carry
            if i >= 0:
                numSum+=ord(num1[i]) - ord('0')
            if j >= 0:
                numSum+=ord(num2[j]) - ord('0')
                
            carry = 1 if numSum > 9 else 0
            
            res+=str(numSum%10)
            
            i-=1
            j-=1
            
    
        if carry != 0:
            res+=str(carry)
        return res[::-1]

Key Points

  • We have to remember there can potenially be a carry variable if the sum of two digits is greater than 9

Time Complexity

  • Time: O(n)O(n)

  • Space: O(1)O(1)

Last updated