15 Jun 2024C++ / Python / TypeScriptEasy

Add Strings

Collected C++, Python, TypeScript solutions for add strings. Add a dedicated write-up later if you want deeper notes.

auto-generated entry for Add Strings. the solution files are available below.

solution files

  • C++ add-strings/synced-solution.cpp
  • Python add-strings/synced-solution.py
  • TypeScript add-strings/synced-solution.ts

Solution files

Pythonadd-strings/synced-solution.py
def addStrings(num1, num2):
    result = []
    carry = class="syntax-number">0
    i, j = len(num1) - class="syntax-number">1, len(num2) - class="syntax-number">1

    while i >= class="syntax-number">0 or j >= class="syntax-number">0 or carry:
        n1 = int(num1[i]) if i >= class="syntax-number">0 else class="syntax-number">0
        n2 = int(num2[j]) if j >= class="syntax-number">0 else class="syntax-number">0

        total = n1 + n2 + carry
        result.append(str(total % class="syntax-number">10))
        carry = total class=class="syntax-string">"syntax-comment">// class="syntax-number">10

        i -= class="syntax-number">1
        j -= class="syntax-number">1

    return class="syntax-string">''.join(reversed(result))
C++add-strings/synced-solution.cpp
class Solution {
public:
    string addStrings(string num1, string num2) {
        string result = class="syntax-string">"";
        int carry = class="syntax-number">0;
        int i = num1.length() - class="syntax-number">1;
        int j = num2.length() - class="syntax-number">1;

        while (i >= class="syntax-number">0 || j >= class="syntax-number">0 || carry) {
            int n1 = i >= class="syntax-number">0 ? num1[i] - class="syntax-string">'class="syntax-number">0' : class="syntax-number">0;
            int n2 = j >= class="syntax-number">0 ? num2[j] - class="syntax-string">'class="syntax-number">0' : class="syntax-number">0;

            int total = n1 + n2 + carry;
            result = char((total % class="syntax-number">10) + class="syntax-string">'class="syntax-number">0') + result;
            carry = total / class="syntax-number">10;

            i--;
            j--;
        }

        return result;
    }
};
TypeScriptadd-strings/synced-solution.ts
function addStrings(num1: string, num2: string): string {
    let result = class="syntax-string">"";
    let carry = class="syntax-number">0;
    let i = num1.length - class="syntax-number">1;
    let j = num2.length - class="syntax-number">1;

    while (i >= class="syntax-number">0 || j >= class="syntax-number">0 || carry) {
        const n1 = i >= class="syntax-number">0 ? parseInt(num1[i]) : class="syntax-number">0;
        const n2 = j >= class="syntax-number">0 ? parseInt(num2[j]) : class="syntax-number">0;

        const total = n1 + n2 + carry;
        result = String(total % class="syntax-number">10) + result;
        carry = Math.floor(total / class="syntax-number">10);

        i--;
        j--;
    }

    return result;
}