Войти Регистрация
Алгоритмы

172. Сумма чисел из вложенного списка с подписями

Лёгкая

Дан список items любой глубины вложенности. Элементы — целые числа, строки или такие же списки.

Верните сумму: число прибавляется как есть, у строки берётся самая длинная последовательность цифр в её начале ("15 руб" → 15, "руб 15" → 0, "007" → 7). Готовые flat и аналоги не используйте.

В работе: Сумма по чеку, который пришёл из разных источников: где-то число, где-то строка «350 ₽», где-то вложенный список позиций.

Пример 1

Ввод
items = [1, "x", "2x", ["3", ["x2", "5"]]]
Вывод
11

1 + 2 + 3 + 5 = 11, пример из задачи.

Пример 2

Ввод
items = [[], [[]], "abc"]
Вывод
0

Ни одного числа — ответ 0.

Ограничения

  • Всего элементов ≤ 10⁵
  • Глубина вложенности ≤ 10⁴
  • Числа целые, |x| ≤ 10⁹; строки до 20 символов
  • Лимит — 1 с на тест.
Как вызывается ваш код Читать ввод и печатать ответ не нужно: мы вызываем функцию на каждом тесте и сравниваем то, что она вернула. print() и console.log() уходят в консоль.
def nested_sum(items):
СтекСтрокиВложенные структурыцельO(n)

Источник: Яндекс, фронтенд, репозиторий кандидата на GitHub, 2024. Условие пересказано своими словами.