aakarshmadhavan's blog

By aakarshmadhavan, history, 6 years ago, In English

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

  • Vote: I like it
  • +5
  • Vote: I do not like it

»
6 years ago, # |
  Vote: I like it +8 Vote: I do not like it

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.