Какой результат выведет программа №11

Программа напечатает 531: после сортировки и фильтра остаются 1, 3, 5, а reduce добавляет каждую следующую строку в начало.

Короткий ответ

Что ответить на собеседовании

Программа напечатает 531: после сортировки и фильтра остаются 1, 3, 5, а reduce добавляет каждую следующую строку в начало.

Подробный разбор

Ответ с пояснениями

Условие

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

import UIKit

let numbers = [-2, 3, 1, -4, -6, 5]

let output = numbers
    .sorted()
    .filter { $0 > 0 }
    .map { String($0) }
    .reduce("") { $1 + $0 }

print(output)

Ответ

Программа напечатает 531: после сортировки и фильтра остаются 1, 3, 5, а reduce добавляет каждую следующую строку в начало.

Промежуточные значения: после sorted — [-6, -4, -2, 1, 3, 5], после filter — [1, 3, 5], после map — ["1", "3", "5"]. В reduce $0 обозначает накопленную строку, $1 — текущий элемент. Выражение $1 + $0 даёт последовательно "1", "31", "531". При $0 + $1 порядок был бы прямым и получилась бы строка "135".

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее