def most_friends_common(user_id, all_users):
"""Find which user have the most friends in common with the user."""
def nfriends_common(id, friends=set(all_users[user_id])):
return len(friends.intersection(all_users[id])) if id != user_id else -1
return max(all_users, key=nfriends_common)
print(most_friends_common('4444', {
'1111': ['2222', '3333'], # 1111 has 2222, 3333 friends
'2222': ['1111'],
'3333': ['1111', '4444', '5555'],
'4444': ['1111', '2222', '3333'],
'5555': []}))
ZGVmIG1vc3RfZnJpZW5kc19jb21tb24odXNlcl9pZCwgYWxsX3VzZXJzKToKICAgICIiIkZpbmQgd2hpY2ggdXNlciBoYXZlIHRoZSBtb3N0IGZyaWVuZHMgaW4gY29tbW9uIHdpdGggdGhlIHVzZXIuIiIiCiAgICBkZWYgbmZyaWVuZHNfY29tbW9uKGlkLCBmcmllbmRzPXNldChhbGxfdXNlcnNbdXNlcl9pZF0pKToKICAgICAgICByZXR1cm4gbGVuKGZyaWVuZHMuaW50ZXJzZWN0aW9uKGFsbF91c2Vyc1tpZF0pKSBpZiBpZCAhPSB1c2VyX2lkIGVsc2UgLTEKICAgIHJldHVybiBtYXgoYWxsX3VzZXJzLCBrZXk9bmZyaWVuZHNfY29tbW9uKQoKcHJpbnQobW9zdF9mcmllbmRzX2NvbW1vbignNDQ0NCcsIHsKICAgICAgICAgICAgJzExMTEnOiBbJzIyMjInLCAnMzMzMyddLCAjIDExMTEgaGFzIDIyMjIsIDMzMzMgZnJpZW5kcwogICAgICAgICAgICAnMjIyMic6IFsnMTExMSddLAogICAgICAgICAgICAnMzMzMyc6IFsnMTExMScsICc0NDQ0JywgJzU1NTUnXSwKICAgICAgICAgICAgJzQ0NDQnOiBbJzExMTEnLCAnMjIyMicsICczMzMzJ10sCiAgICAgICAgICAgICc1NTU1JzogW119KSkK