程序在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']