Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonの関係リストから相互フォロワーを見つけるプログラム


リレーションと呼ばれるリストがあるとします。リレーションリストrelations[i]の各要素に2つの数字[ai、bi]が含まれている場合、ソーシャルメディアプラットフォームで人物aiがbiをフォローしていることを示します。誰かをフォローしている人のリストを見つけて、フォローバックする必要があります。並べ替えられた順序で返す必要があります。

したがって、入力が関係=[[0、2]、[2、3]、[2、0]、[1、0]]のような場合、出力は[0、2]になります。

これを解決するには、次の手順に従います-

  • ans:=新しいセット

  • 見た:=新しいセット

  • 関係のあるペアaとbごとに、実行します

    • 見られるようにペア(a、b)をマークします

    • (b、a)も表示されているとマークされている場合、

      • bとaを

        に挿入します
  • 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]

  1. リストの累積合計を見つけるPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −リストが与えられたので、累積合計でリストを作成する必要があります。 次に、以下の実装のソリューションを見てみましょう- 例 # cumulative sum def Cumulative(l):    new = []    cumsum = 0    for element in l:       cumsum += element       new.append(cumsum) &

  2. リストからN個の最大の要素を見つけるPythonプログラム

    整数リストが与えられた場合、私たちのタスクはリスト内で最大のN個の要素を見つけることです。 例 Input : [40, 5, 10, 20, 9] N = 2 Output: [40, 20] アルゴリズム Step1: Input an integer list and the number of largest number. Step2: First traverse the list up to N times. Step3: Each traverse find the largest value and store it in a new list. 例 def Nnumbere