ধরুন আমাদের কাছে সংখ্যা নামক সংখ্যার একটি তালিকা আছে, আমাদের পরীক্ষা করতে হবে যে আমরা ঘূর্ণন ব্যবহার করে সংখ্যাগুলি সাজাতে পারি কি না। ঘূর্ণনের মাধ্যমে আমরা সংখ্যার শেষ থেকে কিছু সংলগ্ন উপাদান স্থানান্তর করতে পারি এবং এটিকে অ্যারের সামনে রাখতে পারি।
সুতরাং, যদি ইনপুটটি nums =[4,5,6,1,2,3] এর মত হয়, তাহলে আউটপুটটি True হবে কারণ আমরা শেষ তিনটি উপাদান ঘোরানোর মাধ্যমে সাজাতে পারি এবং সেগুলিকে প্রথমটিতে ফেরত পাঠাতে পারি।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- n :=সংখ্যার আকার
- যদি সংখ্যাগুলি সাজানো হয়, তাহলে
- সত্য ফেরান
- অন্যথায়,
- স্থিতি :=সত্য
- আমি 0 থেকে n - 2 রেঞ্জের জন্য, কর
- যদি nums[i]> nums[i + 1], তারপর
- লুপ থেকে বেরিয়ে আসুন
- যদি nums[i]> nums[i + 1], তারপর
- i :=i + 1 i থেকে n - 2 রেঞ্জের k-এর জন্য
- করুন
- যদি nums[k]> nums[k + 1], তারপর
- স্থিতি :=মিথ্যা
- লুপ থেকে বেরিয়ে আসুন
- যদি nums[k]> nums[k + 1], তারপর
- যদি স্ট্যাটাস মিথ্যা হয়, তাহলে
- মিথ্যে ফেরত দিন
- অন্যথায়,
- যদি nums[n - 1] <=nums[0], তারপর
- সত্য ফেরান
- মিথ্যে ফেরত দিন
- যদি nums[n - 1] <=nums[0], তারপর
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
def solve(nums): n = len(nums) if all(nums[i] <= nums[i + 1] for i in range(len(nums) - 1)): return True else : status = True for i in range(n - 1) : if nums[i] > nums[i + 1] : break i += 1 for k in range(i, n - 1) : if nums[k] > nums[k + 1]: status = False break if not status: return False else : if nums[n - 1] <= nums[0]: return True return False nums = [4,5,6,1,2,3] print(solve(nums))
ইনপুট
[4,5,6,1,2,3]
আউটপুট
True