# Leetcode – Add Strings Solution in Python

## Introduction

In this comprehensive article, we will discuss and solve the ‘Add Strings’ problem on Leetcode. We will analyze different approaches, including simulating the manual addition process and using built-in functions, and consider their time complexities.

## Problem Statement

The ‘Add Strings’ problem is listed as problem number 415 on Leetcode. The problem statement is as follows:

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

You must solve the problem without using any built-in library for handling large integers (such as BigInteger). You must also not convert the strings to integers directly.

### Example:

Input: num1 = "11", num2 = "123"
Output: "134"

Input: num1 = "456", num2 = "77"
Output: "533"

## Approach 1: Simulating the Manual Addition Process

1. Start by initializing an empty string result that will store the final sum, and a variable carry to keep track of the carry value.
2. Use two pointers, initially positioned at the end of both strings.
3. Iterate through the strings from right to left, simulating the process of manual addition: a. Convert each character to its integer value. b. Add the two integers along with the carry from the previous step. c. Update the carry for the next iteration. d. Append the units place of the sum to the result string.
4. After the loop, if there is any carry left, append it to the result.
5. Reverse the result string as we have built it in reverse order.
6. Return the result string.
def addStrings(num1, num2):
result = []
carry = 0
p1, p2 = len(num1) - 1, len(num2) - 1

while p1 >= 0 or p2 >= 0:
n1 = int(num1[p1]) if p1 >= 0 else 0
n2 = int(num2[p2]) if p2 >= 0 else 0

temp_sum = n1 + n2 + carry
carry = temp_sum // 10
result.append(str(temp_sum % 10))

p1 -= 1
p2 -= 1

if carry:
result.append(str(carry))

return ''.join(reversed(result))

### Time Complexity

The time complexity of this approach is O(max(N, M)), where N and M are the lengths of the input strings.

## Approach 2: Using Python Built-in Functions (For Educational Purposes)

It is important to note that this approach does not follow the constraints of not using direct conversions or built-in libraries for handling large integers. This is only for educational purposes to demonstrate Python’s flexibility.

1. Use the built-in int function to convert both strings to integers.
def addStrings(num1, num2):
return str(int(num1) + int(num2))