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

Pythonでマージした後も、最小数の色を見つけるプログラムが残っています


色のリスト(R、G、B)があるとします。これで、2つの異なる色が隣り合っている場合、それらは3番目の色の単一の色のアイテムに変換できます。そのような変換の可能なシーケンスの後に残っているそれらの最小数を見つける必要があります。

したがって、入力がcolors =["G"、 "R"、 "G"、 "B"、 "R"]の場合、以下のように変換できるため、出力は1になります-

Pythonでマージした後も、最小数の色を見つけるプログラムが残っています

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

  • n:=色のサイズ
  • 色に異なる色が1つしかない場合は、
    • return n
  • n <=1の場合、
    • return n
  • x:=0
  • d:=キーと値のペアを持つマップ{( "R"、1)、( "G"、2)、( "B"、3)}
  • 色のcごとに、
    • x:=x XOR d [c]
  • xが0と同じ場合は2を返し、それ以外の場合は1を返します

例(Python)

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

class Solution:
   def solve(self, colors):
      n = len(colors)
      if len(set(colors)) == 1:
         return n
      if n <= 1:
         return n
      x = 0
      d = {"R": 1, "G": 2, "B": 3}
      for qux in colors:
         x ^= d[qux]
      return 2 if x == 0 else 1   
ob = Solution()
colors = ["G", "R", "G", "B", "R"]
print(ob.solve(colors))

入力

["G", "R", "G", "B", "R"]

出力

1

  1. Pythonで目的地に到達するために増加する高さの最小数を見つけるプログラム

    M[r][c]がそのセルの高さを表す行列Mがあるとします。現在左上隅にいて、右下隅に移動したい場合。隣接するセルの高さが現在のセルの高さ以下である場合にのみ、隣接するセル(上、下、左、右)に移動できます。移動する前に任意の数のセルの高さを増やすことができるため、右下のセルに移動できるように、増やす必要のある最小の合計の高さを見つける必要があります。 したがって、入力が次のような場合 2 4 5 8 6 1 次のパス[2、4、5、1]を使用して、高さをこの構成に変更できるため、出力は4になります- 5 5 5 8 6 1

  2. 数の因子の最小合計を見つけるためのPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します- 問題の説明 入力された数値を指定して、指定された数値の因子の最小合計を求めます。 ここでは、すべての因子とそれに対応する合計を計算し、それらの中から最小値を見つけます。 したがって、数の積の最小合計を見つけるために、積の素因数の合計を見つけます。 これが問題の反復実装です- 例 #iterative approach def findMinSum(num):    sum_ = 0    # Find factors of number and add to the sum