Реверс строки

22. Развернуть строку в обратном порядке

Условие задачи:
Необходимо реализовать метод reverse(String input), который возвращает переданную строку в обратном порядке.

Требования:

  • если input == null, необходимо выбросить IllegalArgumentException;

  • пустая строка должна возвращаться без изменений.

Код:

public class StringUtils {

    public static String reverse(String input) {
        // ваш код
    }
}

Примеры:

"hello" → "olleh"
"Java"  → "avaJ"
""      → ""
null    → IllegalArgumentException

Спойлеры к решению

Подсказки
💡 Сначала проверь входную строку на null.
💡 Для разворота строки удобно использовать StringBuilder.
💡 У StringBuilder есть готовый метод reverse().
💡 Пустая строка не требует отдельной обработки.

Решение
public static String reverse(String input) {
    if (input == null) {
        throw new IllegalArgumentException(
                "Input string must not be null"
        );
    }

    return new StringBuilder(input)
            .reverse()
            .toString();
}

String в Java неизменяемый, поэтому для разворота удобно создать StringBuilder:

new StringBuilder(input)

Затем развернуть последовательность:

.reverse()

и преобразовать результат обратно в строку:

.toString()

Для пустой строки:

""

метод reverse() корректно вернёт такую же пустую строку, поэтому отдельная проверка не нужна.

Временная сложность — O(n), дополнительная память для результата — O(n).