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).