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

合計がPythonでkの倍数であるペアにリストを分割できるかどうかをチェックするプログラム


numsと呼ばれる数値のリストと別の値kがあるとすると、各ペアの合計がkで割り切れるように、リストをペアに分割できるかどうかを確認する必要があります。

したがって、入力がnums =[4、7、2、5] k =6のような場合、指定されたリストを(4、2)と(8、1)のようなペアに分割できるため、出力はTrueになります。そしてそれらの合計は3で割り切れる。

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

  • numsに偶数の要素がある場合、
    • Falseを返す
  • count:=サイズkのリストと0で埋める
  • numsのnごとに、
    • count [n mod k]:=count [n mod k] + 1
  • count [0]が偶数の場合、
    • Falseを返す
  • 1から(k / 2)の商までの範囲のiについては、
    • count[i]がcount[k--i]と同じでない場合、
      • Falseを返す
  • Trueを返す

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

class Solution:
   def solve(self, nums, k):
      if len(nums) % 2:
         return False

      count = [0] * k
      for n in nums:
         count[n % k] += 1

      if count[0] % 2:
         return False

      for i in range(1, k // 2 + 1):
         if count[i] != count[k - i]:
            return False
      return True

ob = Solution()
nums = [4, 7, 2, 5]
k = 6
print(ob.solve(nums, k))

入力

[4, 7, 2, 5], 6

出力

True

  1. Pythonでリストが厳密に増加しているか減少しているかを確認するプログラム

    番号のリストがあるとします。リストが厳密に増加しているか、厳密に減少しているかを確認する必要があります。 したがって、入力がnums =[10、12、23、34、55]のような場合、すべての要素が異なり、各要素が前の要素よりも大きいため、出力はTrueになります。したがって、これは厳密に増加しています。 これを解決するには、次の手順に従います- numsのサイズが<=2の場合、 Trueを返す numのすべての要素が明確でない場合は、 Falseを返す ordered:=リスト番号を並べ替える numsが順序付けされたものと同じである場合、またはnumsが逆の方法で順序付け

  2. リストが空かどうかをチェックするPythonプログラム?

    空のリストが与えられました。私たちの仕事は、このリストが空かどうかを確認することです。ここでチェックするのは暗黙のチェック方法です。 アルゴリズム Step 1: We take an empty list. Step 2: then check if list is empty then return 1 otherwise 0. サンプルコード # Python code to check for empty list def checklist(A): if not A: return 1 else: return 0 # Driver