Проверьте, можно ли использовать цифры из конкатенации даты и месяца для формирования данного года

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

Даны три строки D , M и Y , представляющие дату. Задача состоит в том, чтобы проверить, дает ли конкатенация даты и месяца те же цифры, что и год.

Примеры :

Input: D = 20, M = 12, Y = 2001
Output: Yes
Explanation: Below are the operations performed:
D + M = 2012, Set1 = 0, 1, 2                      
Y = 2001, Set2 = 0, 1, 2
Set1 = Set2, Therefore the answer is Yes. 

Input: D = 26, M = 07, Y = 2001
Output: No

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

  • Объявите две неупорядоченные карты, скажем, s1 и s2 , которые будут хранить пару (char, boolean) .
  • Создайте строки total_concat , в которых будут храниться D + M.
  • Пройдите как total_concat , так и Y и сохраните символы в s1 и s2 соответственно.
  • Запустите цикл for и вставьте все числа total_concat в set1 и Y в set2.
  • Сравните две карты s1 и s2 :
    • Если s1 = s2 , вернуть Да .
    • В противном случае верните No .

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

Временная сложность: O(Y), где Y — размер года.

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