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

Pythonで全員に少なくとも友達がいるかどうかを確認するプログラム


0からn-1までの数字で表されるn人がいるとすると、friends[i][0]とfriends[i][1]が友達である友達のタプルのリストもあります。全員に少なくとも1人の友達がいるかどうかを確認する必要があります。

したがって、入力がn =3 friends =[[0、1]、[1、2]]の場合、Person0はPerson1の友達であり、Person1はPerson0の友達であり、 2、そして人2は人1の友達です。

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

  • people:=サイズnのリスト、0で埋められる
  • 友達のリンクごとに、
    • people [link [0]]:=True
    • people [link [1]]:=True
  • 人の一人一人に対して、
    • 人が空の場合、
      • Falseを返す
  • Trueを返す

理解を深めるために、次の実装を見てみましょう-

class Solution:
   def solve(self, n, friends):
      people = [0 for i in range(n)]
      for link in friends:
         people[link[0]] = True
         people[link[1]] = True
      for person in people:
         if not person:
            return False
      return True
ob = Solution()
n = 3
friends = [ [0, 1], [1, 2] ]
print(ob.solve(n, friends))

入力

3, [[0, 1],[1, 2]]

出力

True

  1. 与えられたグラフがPythonで2部グラフであるかどうかをチェックするプログラム

    無向グラフが1つあるとすると、グラフが2部グラフであるかどうかを確認する必要があります。グラフのすべてのエッジ{u、v}がAに1つのノードuを持ち、Bに別のノードvを持つように、グラフのノードを2つのセットAとBに分割できる場合、グラフは2部グラフであることがわかります。 したがって、入力が次のような場合 次に、出力はTrueになり、[0,4]はセットAにあり、[1,2,3]はセットBにあり、すべてのエッジはAからAまたはBからBではなく、AからBまたはBからAになります。 。 これを解決するために、次の手順に従います- 関数dfs()を定義します。これはソースを取ります

  2. Pythonで1つの値がBSTに存在するかどうかを確認するプログラム

    二分探索木とvalという別の入力があるとすると、valがツリーに存在するかどうかを確認する必要があります。 したがって、入力が次のような場合 val =7の場合、ツリーに7が存在するため、出力はTrueになります。 これを解決するために、次の手順に従います- 関数solve()を定義します。これはルートになります、val ルートがnullの場合、 Falseを返す ルートのデータがvalと同じ場合、 Trueを返す ルートのデータが