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

Pythonで連続する偶数要素を交換する


numsという数字のリストがあるとすると、連続するすべての偶数整数を相互に交換する必要があります。

したがって、入力がnums =[4、5、6、8、10]の場合、出力は[6、5、4、10、8]

になります。

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

  • temp:=null
  • 0からnumsのサイズの範囲のiの場合は、
    • nums [i] mod 2が0と同じ場合、
      • tempがnullでない場合、
        • nums [i]、nums [temp]
        • を交換します
        • temp:=null
      • それ以外の場合、
        • temp:=i
  • 数値を返す

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

class Solution:
   def solve(self, nums):
      temp = None
      for i in range(len(nums)):
         if nums[i] % 2 == 0:
            if temp is not None:
               nums[i], nums[temp] = nums[temp], nums[i]
               temp = None
            else:
               temp = i
      return nums
ob = Solution()
print(ob.solve([4, 5, 6, 8, 10]))
>

入力

[4, 5, 6, 8, 10]

出力

[6, 5, 4, 10, 8]

  1. Pythonのサブセット

    一連の数字があるとします。そのセットのすべての可能なサブセットを生成する必要があります。これは、パワーセットとも呼ばれます。したがって、セットが[1,2,3]のような場合、べき集合は[[]、[1]、[2]、[3]、[1,2]、[1,3]、[2]になります。 、3]、[1,2,3]] 手順を見てみましょう- 再帰的アプローチを使用してこれを解決します。したがって、再帰的なメソッド名がsolve()と呼ばれる場合、これは数値のセット(nums)、一時的なセット(temp)、res、およびインデックスを取ります resolve()関数は次のように機能します- index =numsの長さの

  2. Pythonでのフェアキャンディスワップ

    AとBが2人の友達だとします。彼らはさまざまなサイズのキャンディーバーを持っています。ここで、A [i]はAが所有するキャンディーのi番目のバーのサイズであり、B[j]はBが所有するキャンディーのj番目のバーのサイズです。 彼らは友達なので、交換後、AとBの両方が同じ合計量のキャンディーを持つように、それぞれ1つのキャンディーバーを交換したいと考えています。 (人が持っているキャンディーの総量は、持っているキャンディーバーのサイズの合計です。)整数配列を返す必要があります。ans[0]は、Aが交換する必要のあるキャンディーバーのサイズです。 ans [1]は、Bが交換する必要のあるキャンディ