Найти лексикографически первый идентификатор каждого домена из заданного массива идентификаторов электронной почты
Вам дан массив идентификаторов электронной почты, задача состоит в том, чтобы вернуть лексикографически первый идентификатор электронной почты каждого отдельного домена.
Примеры:
Input: Emails[] = {“ajay@gmail.com”, “rahul@hotmail.com”, “saif@gmail.com”, “faheem@yahoo.com”, “sam@hotmail.com”}
Output: {“ajay@gmail.com”, “rahul@hotmail.com”, “faheem@yahoo.com”}
Explanation: All email IDs are of the total of 3 email domains in the input array so the output contains alphabetically the first email ID of every domain.Input: Emails[] = {“ben@gmail.com”, “alex@gmail.com”, “fin@gmail.com”, “zeke@gmail.com”}
Output: {“alex@gmail.com”}
Explanation: Every email ID is of only one domain i.e. “gmail” so the email which is alphabetically first among all is returned.
Подход: Реализуйте идею ниже, чтобы решить проблему:
The idea is to sort the input emails first and then iterate over the input email. For every single email extract its domain name and map it with entire email address using a hashmap and while iterating check whether any email of current email Id’s domain is present or not. If no such email Id is present in hashmap then insert the current email Id.
Следуйте шагам, указанным ниже, чтобы реализовать идею:
- Отсортируйте входной массив и объявите хэш-карту, которая будет иметь строку в качестве ключа и значения .
- Переберите массив и проверьте, присутствует ли текущий домен электронной почты в хэш-карте или нет.
- Если да, то ничего не делать.
- В противном случае вставьте текущий идентификатор электронной почты в хэш-карту вместе с его доменным именем.
- Переберите Hashmap и заполните выходной массив его значениями.
Ниже приведена реализация описанного выше подхода.
Временная сложность : O(N)
Вспомогательное пространство : O(N)
Статьи по Теме:
- Введение в массивы — структуры данных и алгоритмы
- Введение в хэширование — учебные пособия по структурам данных и алгоритмам