मान लीजिए कि हमारे पास रंग के तारों की एक सूची है, इनमें "लाल", "हरा" और "नीला" हो सकता है, हमें सूची को विभाजित करना होगा ताकि लाल हरे से पहले आए, और हरा नीले रंग से पहले आए।
इसलिए, यदि इनपुट रंग =["नीला", "हरा", "नीला", "लाल", "लाल"] जैसा है, तो आउटपुट ['लाल', 'लाल', 'हरा', ' नीला', 'नीला']
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
हरा :=0, नीला :=0, लाल :=0
-
स्ट्रिंग्स में प्रत्येक स्ट्रिंग के लिए, करें
-
यदि स्ट्रिंग "लाल" के समान है, तो
-
strs[नीला] :="नीला"
-
नीला :=नीला + 1
-
strs[हरा] :="हरा"
-
हरा :=हरा + 1
-
strs[लाल] :="लाल"
-
लाल :=लाल + 1
-
-
अन्यथा जब स्ट्रिंग "ग्रीन" के समान हो, तब
-
strs[नीला] :="नीला"
-
नीला :=नीला + 1
-
strs[हरा] :="हरा"
-
हरा :=हरा + 1
-
-
अन्यथा जब स्ट्रिंग "नीला" के समान हो, तब
-
strs[नीला] :="नीला"
-
नीला :=नीला + 1
-
-
-
रिटर्न स्ट्रिंग्स
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
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']