Найдите номер мобильного телефона, образованный с использованием первых цифр массивов абсолютных разностей последовательных номеров.
Учитывая String ph[] , задача состоит в том, чтобы найти новый номер для пользователя на основе следующих условий:
- Новый номер также будет начинаться с той же цифры, что и исходный номер.
- Цифры нового числа будут первыми цифрами ряда массивов абсолютных разностей последовательных элементов.
Примеры:
Input: ph = “9827218706”
Output: 9154301011
Explanation:
Input: ph =”9647253846″
Output: 9310100011
Подход: Рассмотрите следующие шаги для решения этой проблемы:
- Преобразуйте каждый символ из строки в целое число и сохраните его в массиве ph1[] , используя понимание списка.
- Объявите пустую строку ph2 .
- Преобразуйте первый элемент массива ph1[ ] в строку и добавьте его в ph2 .
- Используя понимание списка, создайте массив, сохранив абсолютную разницу последовательных элементов.
- Назначьте этот массив ph1 .
- Повторите шаги 3-5 десять раз, так как номер телефона состоит из десяти цифр.
Ниже приведена реализация описанного выше подхода.
Временная сложность: O(N*N)
Вспомогательное пространство: O(N)
Эффективный подход: при этом подходе не требуется дополнительного места для хранения элементов в массиве. Сначала объявим пустую строку ph2 , в которой будет храниться счастливое число, теперь создадим цикл for, в котором первый символ строки будет добавлен к ph2 , и снова цикл for, чтобы найти абсолютную разницу последовательных элементов. Теперь строка абсолютной разницы будет присвоена исходному номеру ph1 , и будут выполнены те же шаги. Выполните следующие шаги, чтобы решить проблему:
- Инициализировать строковую переменную ph2[] как пустую строку.
- Перебрать диапазон [0, N), используя переменную i , и выполнить следующие задачи:
- Добавьте ph[0] к переменной ph2[].
- Инициализируйте строковую переменную S[] как пустую строку.
- Перебрать диапазон [0, N-1), используя переменную j , и выполнить следующие задачи:
- Добавьте значение str(abs(int(ph[j])-int(ph[j+1]))) к переменной S[].
- Установите значение ph как S[].
- После выполнения вышеуказанных шагов выведите значение ph2[] в качестве ответа.
Ниже приведена реализация описанного выше подхода.
Временная сложность: O(N*N)
Вспомогательное пространство: O(N)
