TGViewer
Algorithmics: хакаем алгоритмические собесы Algorithmics: хакаем алгоритмические собесы @algorithmics_cl · 1.44K subscribers
Post #77 1.32K
Разворот слов в строке

Подобные задачи чаще всего попадаются на собеседованиях — на первый взгляд задача кажется очень простой, особенно если воспользоваться встроенными функциями языка - trim, split и так далее - задача решается в несколько строчек кода.
Но, обычно, в таких задачах интервьеры просят НЕ использовать эти функции и реализовать все самим. И в этот момент частенько «зависаешь» на реализации.

Сложность: 🟡 Средняя

ℹ️ Описание

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

В итоговой строке слова должны быть разделены одним пробелом, а также не должно быть пробелов в начале и конце строки.

⚠️ Ограничения

— Длина строки может быть в диапазоне от 1 до 10000
— Строка содержит только буквы латинского алфавита, числа и пробелы.
— В каждой строке есть как минимум одно слово


1️⃣ Пример

Входящие данные

«the sky is blue»

Ответ

«blue is sky the»


2️⃣ Пример

Входящие данные

« hello world »

Ответ

«world hello»


3️⃣ Пример

Входящие данные

«a good example»

Ответ

«example good a»


✅ Решение

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

«a good example».


1. Удаляем лишние пробелы внутри строки и получаем строку

«a good example»


2. Далее переворачиваем каждое слово внутри строки и получаем строку

«a doog elpmaxe»


3. Последним шагом переворачиваем всю строку и получаем требуемый результат

«example good a»


Посмотреть реализацию в блоге

🅾️ Оценка сложности

По времени

O(n) — так как мы несколько раз итерируемся по всей строке.

По памяти

O(n) — так как мы выделяем память для работы с новой строкой.

#strings #medium
  • 🔥 5
  • 👍 2
  • 👏 1
More from @algorithmics_cl
  1. Feb 8, 2025Количество провинций Давайте закрепим знания про Disjoint Set новой задачей. Сложность: 🟡…
  2. Feb 4, 2025Disjoint Set Привет, друзья! Сегодня мы с вами не будем решать конкретную задачу, а познак…
  3. Dec 4, 2024Так как в этой задаче баланс между операциями записи и чтения смещен в сторону записи, нам…
  4. Dec 4, 2024Система поиска подсказок Ранее мы уже разбирали задачу, в которой нужно было реализовать с…
  5. Oct 29, 2024Префиксное дерево (Trie) Префиксное дерево, или Trie (произносится как «три») — это структ…
  6. Oct 11, 2024Максимальная сумма парных элементов связного списка Продолжаем изучение связанных списков…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →