Проверить, может ли массив строк соответствовать определенному числу X

Опубликовано: 1 Декабря, 2021

Учитывая целое число 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 
 

Рекомендуется: сначала попробуйте свой подход в {IDE}, прежде чем переходить к решению.

Подход: Идея состоит в том, чтобы преобразовать каждое число массива в десятичное основание, присвоив ему основание от 2 до 36, а затем проверить каждое из преобразованных чисел, равно ли оно X или нет.
Пошаговый алгоритм для вышеуказанного подхода описан ниже -

  1. Установите счетчик на 0 для проверки количества чисел, которые равны X при преобразовании.
  2. Запустите цикл, чтобы перебрать числа в массиве, а затем для каждого из чисел -
    • Выполните еще один цикл от 2 до 36, чтобы присвоить основание числу и найти десятичный эквивалент числа.
    • Если десятичный эквивалент числа равен X, то увеличьте счетчик на 1 и прервите цикл, чтобы не назначать какое-либо другое основание тому же числу.
  3. Если количество чисел, которые можно преобразовать в X, равно длине массива, то массив может соответствовать числу X.

Ниже представлена реализация описанного выше подхода:

Анализ производительности:

  • Сложность времени: O (N).
  • Вспомогательное пространство: O (1).

Вниманию читателя! Не прекращайте учиться сейчас. Освойте все важные концепции DSA с помощью самостоятельного курса DSA по доступной для студентов цене и будьте готовы к работе в отрасли. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .

Если вы хотите посещать живые занятия с отраслевыми экспертами, пожалуйста, обращайтесь к Geeks Classes Live и Geeks Classes Live USA.