Suppose we have a list called relations. Where each element in relations list relations[i] contains two numbers [ai, bi] it indicates person ai is following bi on a social media platform. We have to find the list of people who follow someone and they follow them back, we have to return it in sorted sequence.
So, if the input is like relations = [[0, 2],[2, 3],[2, 0],[1, 0]], then the output will be [0, 2].
To solve this, we will follow these steps −
ans := a new set
seen := a new set
for each pair a and b in relations, do
mark pair (a, b) as seen
if (b, a) is also marked as seen, then
insert b and a into
sort the elements of ans and return
Example
Let us see the following implementation to get better understanding
def solve(relations): ans = set() seen = set() for a, b in relations: seen.add((a, b)) if (b, a) in seen: ans.add(b) ans.add(a) k = list(ans) rtr = sorted(k) return rtr relations = [ [0, 2], [2, 3], [2, 0], [1, 0] ] print(solve(relations))
Input
[[0, 2],[2, 3],[2, 0],[1, 0]]
Output
[0, 2]