Количество цифр в N и M, которые одинаковы, но присутствуют в разных индексах
Опубликовано: 19 Сентября, 2022
Даны два числа N и M , задача состоит в том, чтобы найти количество цифр в N и M , которые одинаковы, но присутствуют в разных индексах.
Примеры:
Input: N = 123, M = 321
Output: 2
Explanation: Digit 1 and 3 satisfies the conditionInput: 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.