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

Pythonで要素の頻度が偶数かどうかを確認するプログラム


numsという要素のリストがあるとすると、すべての数値が偶数回表示されるかどうかを確認する必要があります。一定のスペースを使用して解決する必要があります。

したがって、入力がnums =[8、9、9、8、5、5]の場合、すべての数値が2回発生したため、出力はTrueになります。

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

  • numsのサイズが奇数の場合、

    • Falseを返す

  • リスト番号を並べ替える

  • 1からnumsのサイズの範囲のiの場合、実行します

    • nums[i]がnums[i-1]と同じ場合、

      • nums [i]:=0、

      • nums [i-1]:=0

  • numsに存在するすべての要素の合計が0と同じ場合はtrueを返し、それ以外の場合はfalseを返します

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

def solve(nums):
   if len(nums) & 1:
      return False
   nums.sort()
   for i in range(1, len(nums)):
      if nums[i] == nums[i - 1]:
         nums[i] = nums[i - 1] = 0
   return sum(nums) == 0

nums = [8, 9, 9, 8, 5, 5]
print(solve(nums))

入力

[8, 9, 9, 8, 5, 5]

出力

True

  1. Pythonで葉のシーケンスが2つの葉と同じであるかどうかを確認するプログラム

    2つの二分木があるとします。両方の木の左から右への葉の順序が同じであるかどうかを確認する必要があります。 したがって、入力が次のような場合 両方のツリーのシーケンスが[2、6]であるため、出力はTrueになります。 これを解決するには、次の手順に従います。 c:=新しいリスト 関数inorder()を定義します。これが定着し、c cがnullの場合、 c:=新しいリスト rootがnullでない場合、 順序(ルートの左側、c) ルートの左側がnullで、ルートの右側がnullの場合、 cの最後にrootの値を挿入 順序(ルートの権利、c) return c

  2. 与えられたグラフが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()を定義します。これはソースを取ります