Задача состоит в том, чтобы определить недостающее число в строке из неограниченных целых чисел.
Вам дана строка цифр (допустимый ввод будет соответствовать регулярному выражению ^[1-9][0-9]+$
). Строка представляет собой последовательность целых чисел. Например, 1234567891011
. Все числа в последовательности находятся в диапазоне от 1
и 2147483647
включительно.
Последовательность представляет собой последовательность чисел, где каждое число на единицу больше, чем его предшественник. Однако эта последовательность может содержать один и только один пропущенный номер из последовательности. Возможно, что данная строка также не содержит пропущенных чисел в последовательности. Строка всегда будет содержать как минимум два числа из последовательности.
Код должен выводить или возвращать пропущенное значение или 0
(это 0
- не ложное значение) в случае, если пропущенные значения не были найдены.
Ниже приведены допустимые входные данные и их вывод / возврат:
input output actual sequence (for refrence)
123467 5 1 2 3 4 _ 6 7
911 10 9 __ 11
123125126 124 123 ___ 125 126
8632456863245786324598632460 8632458 8632456 8632457 _______ 8632459 8632460
123 0 1 2 3
8632456863245786324588632459 0 8632456 8632457 8632458 8632459
Хотя все это описывается как «строка» в качестве входных данных, если язык способен обрабатывать произвольно большие числа ( dc
и mathematica
, я смотрю на вас двоих), входные данные могут быть произвольно большим числом вместо строки, если это делает код проще.
Для справки, это было вдохновлено вопросом Programmers.SE: найти пропущенное число в последовательности в строке