मान लीजिए कि हमारे पास संख्याओं की एक सूची है जिसे अंक कहा जाता है, हमें निम्नलिखित मानदंडों को बनाए रखते हुए सरणी को क्रमबद्ध करना होगा
- सम संख्याओं को आरोही क्रम में क्रमबद्ध किया जाता है
- विषम संख्याओं को अवरोही क्रम में क्रमबद्ध किया जाता है
- सम और विषम संख्याओं की सापेक्ष स्थिति नहीं बदलनी चाहिए।
इसलिए, यदि इनपुट [9, 14, 12, 91, -4, 5] जैसा है, तो आउटपुट [91, -4, 12, 9, 14, 5]
होगा।इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- ईवन्स :=nums array में इवन टर्म्स की लिस्ट
- ऑड्स :=nums array में विषम शब्दों की सूची
- सूची को समान रूप से क्रमित करें
- सम_आई:=0, विषम_आई:=0
- अनुक्रमणिका के लिए 0 से लेकर अंकों के आकार तक, करें
- यदि nums[index] mod 2, 0 के समान है, तो
- अंक [सूचकांक] :=शाम [even_i]
- ईवन_आई:=ईवन_आई + 1
- अन्यथा,
- अंक [इंडेक्स] :=ऑड्स[odd_i]
- विषम_i :=विषम_i + 1
- यदि nums[index] mod 2, 0 के समान है, तो
- वापसी संख्या
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
class Solution: def solve(self, nums): evens = [num for num in nums if num % 2 == 0] odds = [num for num in nums if num % 2 != 0] evens.sort() odds.sort(reverse=True) even_i = 0 odd_i = 0 for index in range(len(nums)): if nums[index] % 2 == 0: nums[index] = evens[even_i] even_i += 1 else: nums[index] = odds[odd_i] odd_i += 1 return nums ob = Solution() print(ob.solve([9, 14, 12, 91, -4, 5]))
इनपुट
[9, 14, 12, 91, -4, 5]
आउटपुट
[91, -4, 12, 9, 14, 5]