---
round: 3
ticket_no: 21
source_no: 32
slug: multiply-strings
topic: Math / String Simulation
difficulty: Medium
leetcode_id: 43
attempted: true
score:
verdict:
reviewed_at:
---

# Билет 21 — Multiply Strings

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

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

```
Input:  num1 = "2",   num2 = "3"     →  Output: "6"
Input:  num1 = "123", num2 = "456"   →  Output: "56088"
```

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

## Ответ

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

## Разбор

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

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

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

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

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

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

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

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

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