কম্পিউটার টিউটোরিয়াল

পাইথনে কনsekutিভ ইভেন ও আড ইনডেক্স পেয়ার স্ব্যাপ করে অ্যারে বানানো

একটি নম্বর লিস্ট nums দেওয়া আছে। প্রতিটি কনsekutিভ ইভেন ইনডেক্স পেয়ার (০,২), (৪,৬)... এবং আড ইনডেক্স পেয়ার (১,৩), (৫,৭)... কে আদলবদল করুন।

ইনপুট উদাহরণ

nums = [8,5,3,4,8,9,3,6,4,7]

আউটপুট: [3, 4, 8, 5, 3, 6, 8, 9, 4, 7]

অ্যালগরিদম

  1. স্টেপ ৪ দিয়ে লুপ চালান (i = 0, 4, 8...)।
  2. i+2 < len হলে nums[i] এবং nums[i+2] স্ব্যাপ (ইভেন পেয়ার)।
  3. i+3 < len হলে nums[i+1] এবং nums[i+3] স্ব্যাপ (আড পেয়ার)।

পাইথন কোড

def solve(nums):
    for i in range(0, len(nums) - 2, 4):
        if i + 2 < len(nums):
            nums[i], nums[i + 2] = nums[i + 2], nums[i]
        if i + 3 < len(nums):
            nums[i + 1], nums[i + 3] = nums[i + 3], nums[i + 1]
    return nums

# টেস্ট
print(solve([8,5,3,4,8,9,3,6,4,7]))  # [3, 4, 8, 5, 3, 6, 8, 9, 4, 7]

ব্যাখ্যা

ব্লক সাইজ ৪ ধরে ইভেন ও আড ইনডেক্স আলাদা আলাদা রোটেট করা হয়েছে। ইন-প্লেস অপারেশন, সময় O(n), স্পেস O(1)।

  1. পাইথনে ইউনিক অ্যারেতে কনটিগুয়াস ইন্টারভাল খুঁজে বের করার প্রোগ্রাম

  2. পাইথন প্রোগ্রামে অ্যারের যোগফল বের করা

  3. পাইথনে অ্যারের যোগফল বের করা

  4. পাইথন প্রোগ্রাম: ২ডি অ্যারে-তে k-তম ছোট এলিমেন্ট বের করা