Количество упорядоченных пар (i, j), таких что arr[i] и arr[j] объединяются в X

Опубликовано: 20 Сентября, 2022

Учитывая массив arr[] размера N и целое число X , задача состоит в том, чтобы найти количество упорядоченных пар (i, j) таких, что i != j и X является конкатенацией чисел arr[i] и arr[ дж]
Примеры :

Input: N = 4, arr[] = {1, 212, 12, 12}, X = 1212
Output: 3
Explanation: X = 1212 can be obtained by concatenating:

  • numbers[0] = 1 with numbers[1] = 212
  • numbers[2] = 12 with numbers[3] = 12
  • numbers[3] = 12 with numbers[2] = 12
  • Therefore, number of possible ordered pairs are 3

Input: N = 3, arr[] = {11, 11, 110}, X = 11011
Output: 2

Подход: задачу можно решить с помощью хэш-карты. Выполните следующие шаги, чтобы решить проблему.

  • Сохраните длины всех чисел в векторе.
  • Перебрать заданный массив чисел и проверить, можно ли получить X из числа. Если это так, увеличьте количество, чтобы проверить, со сколькими числами текущий номер может образовать пару.
  • Увеличьте значение текущего числа на карте.
  • Очистите карту и повторите те же действия с заданным числовым массивом с обратной стороны.

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


Временная сложность : O(N)
Вспомогательное пространство : O(N)

РЕКОМЕНДУЕМЫЕ СТАТЬИ