Количество цифр в N и M, которые одинаковы, но присутствуют в разных индексах

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

Даны два числа N и M , задача состоит в том, чтобы найти количество цифр в N и M , которые одинаковы, но присутствуют в разных индексах.

Примеры:

Input: N = 123, M = 321
Output: 2
Explanation: Digit 1 and 3 satisfies the condition

Input: N = 123, M = 111
Output: 0

Подход: проблема может быть решена с использованием хеширования и двухуказательного подхода.

  • Преобразование N и M в строку для облегчения обхода
  • Теперь создайте 2 хэша размером 10 для хранения частоты цифр в N и M соответственно.
  • Теперь пройдите цикл от 0 до 9 и:
    • Добавьте min из hashN[i] и hashM[i] к переменной count
  • Теперь пройдитесь по числам, используя два указателя, чтобы найти количество одинаковых цифр, встречающихся в одинаковых индексах как в N, так и в M. Сохраните количество в переменной same_dig_cnt.
  • Теперь верните окончательный счет как количество – same_dig_cnt

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


Временная сложность: O(D), где D — максимальное количество цифр в N или M.
Вспомогательный пробел: O (D), где D — максимальное количество цифр в N или M.

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