মনে করুন nums একটি সংখ্যার তালিকা। এটিকে নিচের শর্তাবলী মেনে সর্ট করতে হবে:
- জোড় সংখ্যা আরোহী ক্রমে সর্ট হবে।
- বিজোড় সংখ্যা অবরোহী ক্রমে সর্ট হবে।
- জোড় ও বিজোড় সংখ্যাগুলোর আপেক্ষিক অবস্থান পরিবর্তন হবে না।
উদাহরণস্বরূপ, [9, 14, 12, 91, -4, 5] হলে আউটপুট [91, -4, 12, 9, 14, 5]।
সমাধানের ধাপসমূহ
- evens := nums-এ থাকা জোড় সংখ্যাগুলোর তালিকা
- odds := nums-এ থাকা বিজোড় সংখ্যাগুলোর তালিকা
- evens সর্ট করুন
- odds উল্টো ক্রমে সর্ট করুন
- even_i := 0, odd_i := 0
- index = 0 থেকে nums-এর আকার পর্যন্ত,
- যদি nums[index] জোড় হয়, nums[index] := evens[even_i], even_i++
- অন্যথায়, nums[index] := odds[odd_i], odd_i++
- nums ফেরত দিন
উদাহরণ
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]