Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python의 관계 목록에서 상호 추종자를 찾는 프로그램

<시간/>

관계라는 목록이 있다고 가정합니다. 관계 목록 관계[i]의 각 요소가 두 개의 숫자[ai, bi]를 포함하는 경우 소셜 미디어 플랫폼에서 사람 ai가 bi를 팔로우하고 있음을 나타냅니다. 우리는 누군가를 팔로우하는 사람들의 목록을 찾아야 하고 그들이 그들을 다시 팔로우해야 합니다. 우리는 그것을 정렬된 순서로 반환해야 합니다.

따라서 입력이 관계 =[[0, 2],[2, 3],[2, 0],[1, 0]]과 같으면 출력은 [0, 2]가 됩니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • ans :=새로운 세트

  • 본 :=새로운 세트

  • 관계의 각 쌍과 b에 대해 수행

    • 보이는 대로 쌍(a, b) 표시

    • (b, a)도 본 것으로 표시되면

      • b와 삽입

  • 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]