কম্পিউটার

পাইথনে অনুমোদিত সন্নিহিত এর শর্তসাপেক্ষ অদলবদল সহ একটি অ্যারে সাজানো সম্ভব কিনা তা পরীক্ষা করুন


ধরুন আমাদের কাছে সংখ্যার একটি ক্রমবিহীন বিন্যাস রয়েছে যাকে nums বলা হয় এবং সমস্ত উপাদান 0 থেকে n-1 এর মধ্যে রয়েছে। আমরা যতবার প্রয়োজন ততবার সংলগ্ন উপাদানগুলিকে সংখ্যায় অদলবদল করতে পারি কিন্তু শুধুমাত্র যখন এই উপাদানগুলির মধ্যে পরম পার্থক্য 1 হয়। আমাদের যাচাই করতে হবে আমরা সংখ্যাগুলি সাজাতে পারি কিনা।

সুতরাং, যদি ইনপুটটি সংখ্যার মত হয় =[1, 0, 3, 2, 5, 4], তাহলে আউটপুটটি True হবে কারণ আমরা এই জোড়াগুলি [(1, 0), (3, 2), (5) অদলবদল করতে পারি। , 4)] সাজাতে [0, 1, 2, 3, 4, 5]।

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • আমি 0 থেকে সংখ্যার আকার - 2 এর মধ্যে, কর
    • যদি nums[i]> nums[i+1] হয়, তারপর
      • যদি nums[i] - nums[i+1] 1 এর মত হয়, তাহলে
        • এক্সচেঞ্জ সংখ্যা[i] এবং সংখ্যা[i+1]
      • অন্যথায়,
        • মিথ্যে ফেরত দিন
  • সত্য ফেরান

উদাহরণ

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

def solve(nums):
   for i in range(len(nums) - 1):
      if nums[i] > nums[i+1]:
         if nums[i] - nums[i+1] == 1:
            nums[i], nums[i+1] = nums[i+1], nums[i]
         else:
            return False
   return True
nums = [1, 0, 3, 2, 5, 4]
print(solve(nums))

ইনপুট

[1, 0, 3, 2, 5, 4]

আউটপুট

True

  1. পাইথনে অনুমোদিত কলামের অদলবদল সহ 1 এর বৃহত্তম আয়তক্ষেত্র খুঁজুন

  2. পাইথনে মার্জ সর্ট কলের k নম্বর সহ অ্যারে খুঁজুন

  3. পাইথনে আপেক্ষিক সাজানোর অ্যারে

  4. পাইথনে প্যারিটি অনুসারে অ্যারে সাজান