用 Python 编写的分割颜色列表的程序

pythonserver side programmingprogramming更新于 2026/1/19 10:20:17

假设我们有一个颜色字符串列表,这些字符串可能包含"红色"、"绿色"和"蓝色",我们必须对列表进行分区,以便红色在绿色之前,绿色在蓝色之前。

因此,如果输入为 colors = ["blue","green","blue","red","red"],则输出将是 ['red',&39;red',&39;green',&39;blue',&39;blue']

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

  • green := 0, blue := 0, red := 0

  • 对于 strs 中的每个字符串,执行

    • 如果字符串与"red",则

      • strs[blue] := "blue"

      • blue := blue + 1

      • strs[green] := "green"

      • green := green + 1

      • strs[red] := "red"

      • red := red + 1

    • 否则,当字符串与 "green" 相同时,则

      • strs[blue] := "blue"

      • blue := blue + 1

      • strs[green] := "green"

      • green := green + 1

    • 否则,当字符串与 "blue" 相同时,则

      • strs[blue] := "blue"

      • blue := blue + 1

  • return strs

让我们看看下面的实现以便更好地理解 −

示例

class Solution:
   def solve(self, strs):
      green = 0
      blue = 0
      red = 0
      for string in strs:
         if string == "red":
            strs[blue] = "blue"
            blue += 1
            strs[green] = "green"
            green += 1
            strs[red] = "red"
            red += 1
         elif string == "green":
            strs[blue] = "blue"
            blue += 1
            strs[green] = "green"
            green += 1
         elif string == "blue":
            strs[blue] = "blue"
            blue += 1
      return strs
ob = Solution()
colors = ["blue","green", "blue", "red", "red"]
print(ob.solve(colors))

输入

["blue","green", "blue", "red", "red"]

输出

['red', 'red', 'green', 'blue', 'blue']

相关文章


有用资源