Это кодовая версия аналогичного вопроса, который я задал в стеке ранее, но подумал, что это будет интересная головоломка.
Получив строку длиной 10, которая представляет собой базовое число 36, увеличьте его на единицу и верните полученную строку.
Это означает, что строки будут содержать только цифры от 0
до 9
и буквы от a
до z
.
База 36 работает следующим образом:
Правая цифра увеличивается, первый с помощью 0
к9
0000000000> 9 итераций> 0000000009
и после этого a
To z
используется:
000000000a> 25 итераций> 000000000z
Если z
необходимо увеличить, он возвращается к нулю, а цифра слева увеличивается:
000000010
Дальнейшие правила:
- Вы можете использовать заглавные или строчные буквы.
- Вы не можете опускать ведущие нули. И вход, и выход являются строками длиной 10.
- Вам не нужно обрабатывать в
zzzzzzzzzz
качестве ввода.
Тестовые случаи:
"0000000000" -> "0000000001"
"0000000009" -> "000000000a"
"000000000z" -> "0000000010"
"123456zzzz" -> "1234570000"
"00codegolf" -> "00codegolg"
"0zzzzzzzzz"
(изменить самую значащую цифру) в качестве контрольного примера. Это споткнуло моё решение на C из-за одной ошибки.