# Solving Leetcode Interviews in Seconds with AI: Add Strings


	# Introduction
	In this blog post, we will explore how to solve the LeetCode problem "415" using AI. LeetCode is a popular platform for preparing for coding interviews, and with the help of AI tools like [Chatmagic](https://www.chatmagic.app), we can generate solutions quickly and efficiently - helping you pass the interviews and get the job offer without having to study for months.

	# Problem Statement
	> 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 inputs to integers directly.   Example 1:  Input: num1 = "11", num2 = "123" Output: "134"  Example 2:  Input: num1 = "456", num2 = "77" Output: "533"  Example 3:  Input: num1 = "0", num2 = "0" Output: "0"    Constraints:  1 <= num1.length, num2.length <= 104 num1 and num2 consist of only digits. num1 and num2 don't have any leading zeros except for the zero itself.  

	# Explanation
	Here's the solution to the problem:

*   **High-Level Approach:**
    *   Simulate manual addition, starting from the least significant digits (rightmost characters of the strings).
    *   Maintain a `carry` variable to handle overflows from each digit addition.
    *   Build the result string by prepending the sum of each digit pair (plus carry, if any) to the result.

*   **Complexity:**
    *   Runtime: O(max(len(num1), len(num2))) - linear with respect to the length of the longer string.
    *   Storage: O(max(len(num1), len(num2))) - to store the result string.

	
	# Code
	```python
	def addStrings(num1: str, num2: str) -> str:
    """
    Adds two non-negative integers represented as strings.

    Args:
        num1: The first non-negative integer as a string.
        num2: The second non-negative integer as a string.

    Returns:
        The sum of num1 and num2 as a string.
    """

    n1 = len(num1)
    n2 = len(num2)
    i = n1 - 1
    j = n2 - 1
    carry = 0
    result = ""

    while i >= 0 or j >= 0 or carry:
        digit1 = int(num1[i]) if i >= 0 else 0
        digit2 = int(num2[j]) if j >= 0 else 0

        sum_digits = digit1 + digit2 + carry
        digit = sum_digits % 10
        carry = sum_digits // 10

        result = str(digit) + result

        i -= 1
        j -= 1

    return result
	```
			
