Блог пользователя aakarshmadhavan

Автор aakarshmadhavan, история, 6 лет назад, По-английски

I am struggling very hard with this easy problem. I am not sure how to solve it at all.

How should I go to it? Should I form a graph?

Ie

Email -> Account ID -> Email -> Account ID etc...?

Thanks

  • Проголосовать: нравится
  • +5
  • Проголосовать: не нравится

»
6 лет назад, # |
  Проголосовать: нравится +8 Проголосовать: не нравится

Yes, you can create a graph with vertexes of emails and names. But it's important to create only one vertex for same emails, but different vertexes for same names — it's required by problem. Now, lets create edges — you have to connect account name with it's emails.

Now you have to find emails that belongs to some account. Just use BFS/DFS to process entire connectivity component and add them to some list.

It's easy to solve using std::map in C++. Just create map<int, string> to get name of vertex by it's ID and map<string, int> to get ID by it's name. And again, dont forget that same account names must be different vertexes.