---
round: 3
ticket_no: 2
source_no: 31
slug: add-strings
topic: Math / String Simulation
difficulty: Easy
leetcode_id: 415
attempted: true
score:
verdict:
reviewed_at:
---

# Билет 02 — Add Strings

## Условие (как предъявлено)

Даны два неотрицательных целых числа, заданных строками `num1` и `num2`. Сложите их без преобразования строк в Integer и без использования встроенной длинной арифметики; верните сумму в виде строки.

```
Input:  num1 = "11",  num2 = "123"  →  Output: "134"
Input:  num1 = "456", num2 = "77"   →  Output: "533"
Input:  num1 = "0",   num2 = "0"    →  Output: "0"
```

Constraints: `1 <= num1.length, num2.length <= 10^4`; строки состоят только из цифр и не содержат ведущих нулей, кроме самого `"0"`.

## Ответ

> Здесь нужно складывать в столбик, то есть нужно, короче, сравнивать по циферно. Привести их идти с правой стороны. Вот по циферно сравнивать, записывать. Ну, как бы сумму, остаток отделить на 10, остальное складывать в называется, в остаток, да, и при сложении следующих двух чисел нужно остаток туда приплюсовывать. Вот, у нас получается это всё в третье число складывается в длинную строку. Удобно её вести как новый массив, а потом в конце его реверс сделать, инвертировать.

## Разбор

**Что верно:**

**Что упущено и ошибки:**

**Эталонная идея:**

**Время:** O(...) — что доминирует

**Память:** O(...) дополнительная (+ O(...) на выход / стек рекурсии)

**Граничные случаи:** 1) ... 2) ... 3) ...

**Критерии:** идея ⚠️ · структура данных ⚠️ · сложность ⚠️ · граничные случаи ⚠️

**Канон сложности:** сверить с [`../complexity-cheat-sheet.md`](../complexity-cheat-sheet.md) (таблица по 32 задачам)

**Разбор задачи:** [`../../algo-solutions/02-extra/06-math-string-simulation/31-add-strings.md`](../../algo-solutions/02-extra/06-math-string-simulation/31-add-strings.md)
