Python 中根据关系列表查找共同关注者程序
假设我们有一个名为 relations 的列表。relations 列表中的每个元素 relations[i] 包含两个数字 [ai, bi],表示用户 ai 在社交媒体平台上关注用户 bi。我们需要找到一个列表,其中包含互相关注的用户,并按排序顺序返回。
例如,如果输入是 relations = [[0, 2],[2, 3],[2, 0],[1, 0]],则输出为 [0, 2]。
为了解决这个问题,我们将遵循以下步骤:
ans := 一个新的集合
seen := 一个新的集合
对于 relations 中的每一对 a 和 b,执行以下操作:
将 (a, b) 对标记为已查看
如果 (b, a) 也被标记为已查看,则:
将 b 和 a 插入 ans 中
对 ans 的元素进行排序并返回
示例
让我们看看下面的实现,以便更好地理解。
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))
输入
[[0, 2],[2, 3],[2, 0],[1, 0]]
输出
[0, 2]
广告