-
Notifications
You must be signed in to change notification settings - Fork 0
/
amazon_2.py
45 lines (35 loc) · 907 Bytes
/
amazon_2.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
from collections import defaultdict
class Solution(object):
def abcd(self, lst):
graph = defaultdict(list)
for x, y in lst:
graph[x].append(y)
graph[y].append(x)
ans = []
seen = set()
def dfs(node):
if node in seen: return
for items in graph[node]:
if items not in temp:
temp.add(items)
dfs(items)
seen.add(items)
temp = set()
for x, y in lst:
temp.add(x)
dfs(x)
seen.add(x)
ans.append(list(temp))
temp = set()
ans = sorted(ans, key=lambda i :(-len(i), i ))
return ans[0]
abc = Solution()
print (abc.abcd(
[["I1", "I2"],
["I3", "I4"],
["I4", "I5"]]
))
print (abc.abcd(
[["Item1", "Item2"],
["Item3", "Item4"]]
))