> For the complete documentation index, see [llms.txt](https://joshualbarb.gitbook.io/leetcode-problems/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://joshualbarb.gitbook.io/leetcode-problems/strings/string-math/add-strings.md).

# 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)$$&#x20;
* **Space:** $$O(1)$$&#x20;
