Giả sử chúng ta có một danh sách các chuỗi màu, chúng có thể chứa "đỏ", "xanh lá cây" và "xanh lam", chúng ta phải phân vùng danh sách sao cho màu đỏ đứng trước màu xanh lá cây và màu xanh lá cây đứng trước màu xanh lam.
Vì vậy, nếu đầu vào là các màu =["blue", "green", "blue", "red", "red"], thì đầu ra sẽ là ['red', 'red', 'green', ' blue ',' blue ']
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
-
xanh lục:=0, xanh lam:=0, đỏ:=0
-
đối với mỗi chuỗi trong strs, thực hiện
-
nếu chuỗi giống như "red", thì
-
strs [blue]:="blue"
-
blue:=blue + 1
-
strs [green]:="green"
-
xanh lá cây:=xanh lục + 1
-
strs [red]:="red"
-
red:=red + 1
-
-
ngược lại khi chuỗi giống như "xanh" thì
-
strs [blue]:="blue"
-
blue:=blue + 1
-
strs [green]:="green"
-
xanh lá cây:=xanh lục + 1
-
-
ngược lại khi chuỗi giống như "blue" thì
-
strs [blue]:="blue"
-
blue:=blue + 1
-
-
-
trả về strs
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
Ví dụ
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))
Đầu vào
["blue","green", "blue", "red", "red"]
Đầu ra
['red', 'red', 'green', 'blue', 'blue']