समस्या विवरण
संख्याओं की एक सूची nums दी गई है, हमें प्रत्येक क्रमागत सम पूर्णांक को आपस में एक्सचेंज करना है।
उदाहरण
इनपुट: [4, 5, 6, 8, 10]
आउटपुट: [6, 5, 4, 10, 8]
व्याख्या: 4 और 6 स्वैप हुए, फिर 8 और 10 स्वैप हुए। 5 विषम है इसलिए अपरिवर्तित रहा।
एल्गोरिदम
temp = Noneइनिशियलाइज़ करें- सूची के प्रत्येक इंडेक्स
iके लिए:- यदि
nums[i]सम है:- यदि
tempNone नहीं है (यानी पिछला सम तत्व मिला था):nums[i]औरnums[temp]को स्वैप करेंtemp = Noneरीसेट करें
- अन्यथा
temp = iसेट करें (इस सम तत्व के इंडेक्स को स्टोर करें)
- यदि
- यदि
- संशोधित सूची वापस करें
पायथन कार्यान्वयन
class Solution:
def solve(self, nums):
temp = None
for i in range(len(nums)):
if nums[i] % 2 == 0:
if temp is not None:
nums[i], nums[temp] = nums[temp], nums[i]
temp = None
else:
temp = i
return nums
ob = Solution()
print(ob.solve([4, 5, 6, 8, 10]))
इनपुट
[4, 5, 6, 8, 10]
आउटपुट
[6, 5, 4, 10, 8]