Обратить порядок символов в строке

Сначала определите, что считается символом. Для пользовательского текста с emoji и комбинируемыми знаками нужно разворачивать графемные кластеры, а не байты или отдельные UTF-16 элементы.

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

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

Сначала определите, что считается символом. Для пользовательского текста с emoji и комбинируемыми знаками нужно разворачивать графемные кластеры, а не байты или отдельные UTF-16 элементы.

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

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

Условие

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

Ответ

Сначала определите, что считается символом. Для пользовательского текста с emoji и комбинируемыми знаками нужно разворачивать графемные кластеры, а не байты или отдельные UTF-16 элементы.

Алгоритм: сегментировать строку по границам расширенных графем Unicode, перевернуть список сегментов и соединить их без изменения внутри. Это сохраняет связку буквы с диакритикой и составные emoji. Для реализации используйте библиотеку с поддержкой Unicode segmentation, а не собственные правила для нескольких emoji. Если задача ограничена ASCII, достаточно обычного разворота; для произвольного Unicode такого предположения делать нельзя.

Источник: unicode.org.

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

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

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

Подробнее