程序在Python中对颜色列表进行分区
假设我们有一个颜色字符串列表,其中可能包含“红色”,“绿色”和“蓝色”,我们必须对列表进行分区,以使红色位于绿色之前,绿色位于蓝色之前。
因此,如果输入的颜色像[color]=[“blue”,“green”,“blue”,“red”,“red”],那么输出将是['red','red','green','蓝色”,“蓝色”]
为了解决这个问题,我们将遵循以下步骤-
绿色:=0,蓝色:=0,红色:=0
对于strs中的每个字符串,执行
strs[blue]:=“蓝色”
蓝色:=蓝色+1
strs[blue]:=“蓝色”
蓝色:=蓝色+1
strs[green]:=“绿色”
绿色:=绿色+1
strs[blue]:=“蓝色”
蓝色:=蓝色+1
strs[green]:=“绿色”
绿色:=绿色+1
strs[red]:=“红色”
红色:=红色+1
如果字符串与“红色”相同,则
否则,当字符串与“绿色”相同时,则
否则,当字符串与“blue”相同时,则
返回str
让我们看下面的实现以更好地理解-
示例
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']