Skip to main content

Add Strings

LeetCode 415 | Difficulty: Easy​

Easy

Problem Description​

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 <= 10^4`

- `num1` and `num2` consist of only digits.

- `num1` and `num2` don't have any leading zeros except for the zero itself.

Topics: Math, String, Simulation


Approach​

Mathematical​

Look for mathematical patterns or formulas. Consider: modular arithmetic, GCD/LCM, prime factorization, combinatorics, or geometric properties.

When to use

Problems with clear mathematical structure, counting, number properties.

String Processing​

Consider character frequency counts, two-pointer approaches, or building strings efficiently. For pattern matching, think about KMP or rolling hash. For palindromes, expand from center or use DP.

When to use

Anagram detection, palindrome checking, string transformation, pattern matching.


Solutions​

Solution 1: C# (Best: 152 ms)​

MetricValue
Runtime152 ms
MemoryN/A
Date2018-09-25
Solution
public class Solution {
public string AddStrings(string num1, string num2) {
int carry=0;
int m = num1.Length-1;
int n = num2.Length-1;
StringBuilder sb = new StringBuilder();
while(m>=0 && n>=0)
{
int result = (num1[m]-'0') + (num2[n]-'0') + carry;
sb.Insert(0,$"{result%10}");
carry = result/10;
m--;
n--;
}
while(m>=0)
{
int result = (num1[m] - '0') + carry;
sb.Insert(0, $"{result % 10}");
carry = result / 10;
m--;
}
while(n>=0)
{
int result = (num2[n] - '0') + carry;
sb.Insert(0, $"{result % 10}");
carry = result / 10;
n--;
}
if(carry!=0) sb.Insert(0, $"{carry}");

return sb.ToString();
}
}

Complexity Analysis​

ApproachTimeSpace
Solution$O(n)$$O(1) to O(n)$

Interview Tips​

Key Points
  • Start by clarifying edge cases: empty input, single element, all duplicates.