Проверить, может ли массив строк соответствовать определенному числу X
Учитывая целое число X и массив строк str, который представляет числа в любой базе в диапазоне от [2, 36] , задача состоит в том, чтобы проверить, все ли строки могут быть преобразованы в X, присвоив каждой строке желаемое основание от 2 до 36, таким образом, что десятичный базовый эквивалент строки равен X.
Примеры:
Input: str = {10000, 20, 16}, X = 16
Output: Yes
Explanation:
Every number in array is equal to 16 when converted to Decimal base, if following bases are selected:
(10000)2 = (16)10
(20)8 = (16)10
(16)10 = (16)10
Input: str = {10100, 5A, 1011010}, X = 90
Output: Yes
Every number in array is equal to 90 when converted to Decimal base, if following bases are selected:
(10100)3 = (90)10
(5A)16 = (90)10
(1011010)2 = (90)10
Подход: Идея состоит в том, чтобы преобразовать каждое число массива в десятичное основание, присвоив ему основание от 2 до 36, а затем проверить каждое из преобразованных чисел, равно ли оно X или нет.
Пошаговый алгоритм для вышеуказанного подхода описан ниже -
- Установите счетчик на 0 для проверки количества чисел, которые равны X при преобразовании.
- Запустите цикл, чтобы перебрать числа в массиве, а затем для каждого из чисел -
- Выполните еще один цикл от 2 до 36, чтобы присвоить основание числу и найти десятичный эквивалент числа.
- Если десятичный эквивалент числа равен X, то увеличьте счетчик на 1 и прервите цикл, чтобы не назначать какое-либо другое основание тому же числу.
- Если количество чисел, которые можно преобразовать в X, равно длине массива, то массив может соответствовать числу X.
Ниже представлена реализация описанного выше подхода:
Анализ производительности:
- Сложность времени: O (N).
- Вспомогательное пространство: O (1).
Вниманию читателя! Не прекращайте учиться сейчас. Освойте все важные концепции DSA с помощью самостоятельного курса DSA по доступной для студентов цене и будьте готовы к работе в отрасли. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .
Если вы хотите посещать живые занятия с отраслевыми экспертами, пожалуйста, обращайтесь к Geeks Classes Live и Geeks Classes Live USA.