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

Pythonで偶数のインデックス要素と奇数のインデックス要素を交換する


numsと呼ばれる数値のリストがあるとすると、連続する各偶数インデックスを相互に交換し、連続する各奇数インデックスも相互に交換します。

したがって、入力が[1,2,3,4,5,6,7,8,9]の場合、出力は[3、4、1、2、7、8、5、6、9]になります。 ]

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

  • 長さ:=numsのサイズ
  • 0から長さの範囲のiの場合、4ずつ増やします。
    • i + 2
    • nums[i]とnums[i+2]を交換します
  • i + 3
  • nums [i+1]とnums[i+3]を交換します
  • 数値を返す
  • 理解を深めるために、次の実装を見てみましょう-

    class Solution:
       def solve(self, nums):
          length = len(nums)
          for i in range(0,length,4):
             if(i+2<length):
                nums[i], nums[i+2] = nums[i+2], nums[i]
             if(i+3<length):
                nums[i+1], nums[i+3] = nums[i+3], nums[i+1]
          return nums
    ob = Solution()
    nums = [1,2,3,4,5,6,7,8,9]
    print(ob.solve(nums))

    入力

    [1,2,3,4,5,6,7,8,9]

    出力

    [3, 4, 1, 2, 7, 8, 5, 6, 9]

    1. リスト内の偶数と奇数をカウントするPythonプログラム

      この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −リストが与えられたので、リスト内の偶数と奇数を数える必要があります。 以下で説明する3つの方法があります- アプローチ1-力ずくのアプローチを使用する 例 list1 = [21,3,4,6,33,2,3,1,3,76] even_count, odd_count = 0, 0 # enhanced for loop for num in list1:    #even numbers    if num % 2 == 0:      

    2. 奇数桁と偶数桁の合計の差のためのPythonプログラム

      この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 −整数の場合、奇数桁の合計と偶数桁の合計の差が0であるかどうかを計算する必要があります。 ブルートフォースアプローチでは、数値のすべての偶数桁と奇数桁の合計を計算し、それらを減算して答えを計算します。 計算時間を短縮するために、精神数学の概念を使用します。 上記の制約は、数値が11で割り切れる場合にのみ当てはまります。したがって、以下の実装では、数値の11で割り切れる可能性を確認します。 ここで、複雑さはO(n)から、分割可能性と比較に関係する一定の時間に減少します。 それでは