diff --git a/solution/2000-2099/2097.Valid Arrangement of Pairs/README.md b/solution/2000-2099/2097.Valid Arrangement of Pairs/README.md index 1fa6c8e20ed4e..ae3cdc696f5b7 100644 --- a/solution/2000-2099/2097.Valid Arrangement of Pairs/README.md +++ b/solution/2000-2099/2097.Valid Arrangement of Pairs/README.md @@ -89,6 +89,32 @@ end1 = 1 == 1 = start2 #### Python3 ```python +class Solution: + def validArrangement(self, pairs): + graph = defaultdict(deque) + degree = defaultdict(int) + + for u, v in pairs: + graph[u].append(v) + degree[u] += 1 + degree[v] -= 1 + + start = pairs[0][0] + for node in graph: + if degree[node] > 0: + start = node + break + + path = [] + + def traverse(node): + while graph[node]: + traverse(graph[node].popleft()) + path.append(node) + + traverse(start) + path.reverse() + return [[path[i], path[i + 1]] for i in range(len(path) - 1)] ```