aakarshmadhavan's blog

By aakarshmadhavan, history, 4 weeks 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  

»
4 weeks 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.