Инвертировать порядок слов в предложении

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

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

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

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

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

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

Условие

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

class Solution {
    public String reverseWords(String input) {
        // TODO
    }
}

Ответ

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

public String reverseWords(String input) {
    String normalized = java.util.Objects.requireNonNull(input).trim();
    if (normalized.isEmpty()) return "";
    java.util.List<String> words = java.util.Arrays.asList(normalized.split("\\s+"));
    java.util.Collections.reverse(words);
    return String.join(" ", words);
}

Время и дополнительная память O(n). Порядок символов внутри слов не меняется. Здесь используются стандартные пробельные правила trim и regex; если требуется специальная Unicode-нормализация пробелов, её нужно согласовать отдельно.

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

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

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

Подробнее