Как решить эту задачу из Codewars?
Ответы (1 шт):
Автор решения: Nowhere Man
→ Ссылка
- Проверяете, является ли входная строка
strнепустой и оканчивается ли на цифру (можно использовать методы классаString:length(), isEmpty(), length(), charAt(int index), иCharacter::isDigit). - Если условие не выполняется, возвращаете исходную строку
strс добавленной единицей:str + "1". - Создаёте экземпляр
StringBuilder, чтобы проще было менять символы внутри строки. - Идёте от конца строки, берёте значение цифрового символа (
Character::getNumericValue), прибавляете 1 к символу в текущей позиции (с учётом остатка от деления на 10), обновляете символ в текущей позиции, проверяете наличие переноса в старший разряд. - Если есть перенос, а строка закончилась или не найден очередной цифровой символ, вставить
1в текущую позицию (StringBuilder::insert). - Возвращаете строку, полученную из
StringBuilder.
Реализация в коде не приводится в педагогических целях.
