在Python中查找合并后剩余最小数量的颜色的程序

在Python中查找合并后剩余最小数量的颜色的程序

假设我们有一组颜色(R,G,B)。现在,如果相邻有两种不同的颜色,则可以转换为第三种颜色的单个颜色项。我们必须找到任何可能的这种转换序列后剩余的最小数量。

因此,如果输入为colors = [“G”,”R”,”G”,”B”,”R”],则输出将为1,因为它可以转换为-如下所示

在Python中查找合并后剩余最小数量的颜色的程序

为了解决这个问题,我们将遵循以下步骤 –

  • n:颜色的大小
  • 如果颜色只有一种不同的颜色,那么
    • 返回n
  • 如果n≤1,则
    • 返回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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程