Python 顏色列表分割槽程式


假設我們有一個顏色字串列表,這些字串可能包含“紅色”、“綠色”和“藍色”,我們需要對列表進行分割槽,以便紅色在綠色之前,綠色在藍色之前。

因此,如果輸入類似於 colors = ["blue","green", "blue", "red", "red"],則輸出將為 ['red', 'red', 'green', 'blue', '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

  • 返回 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']

更新於:2020年10月10日

瀏覽量:531

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告