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

অ্যারে সোর্টেড এবং রোটেটেড কিনা যাচাই করার প্রোগ্রাম

একটি অ্যারে nums দেওয়া আছে। যাচাই করতে হবে যে অ্যারেটি 본래 নন-ডিক্রিজিং অর্ডারে সোর্টেড ছিল কিনা এবং তারপর কিছু পজিশন রোটেট করা হয়েছে কিনা (হওয়ায় শূন্যও হতে পারে)। অ্যারেতে ডুপ্লিকেট থাকতে পারে।

ইনপুট: nums = [12, 15, 2, 5, 6, 9] → আউটপুট: True। কারণ এটি ডানে ২ পজিশন রোটেট করা হয়েছে।

সমাধানের ধাপসমূহ

  • j := 0

  • যখন j < len(nums)-1 এবং nums[j] <= nums[j+1]: j++

  • res := nums[j+1:] + nums[:j+1] (রোটেশন বাতিল করে সোর্টেড অ্যারে পুনর্গঠন)

  • res-এ যেকোনো জায়গায় res[i] > res[i+1] থাকলে False রিটার্ন করুন

  • True রিটার্ন করুন

উদাহরণ (Python)

def solve(nums):
    j = 0
    while j < len(nums) - 1 and nums[j] <= nums[j + 1]:
        j += 1
    res = nums[j + 1:] + nums[:j + 1]
    for i in range(len(res) - 1):
        if res[i] > res[i + 1]:
            return False
    return True

nums = [12, 15, 2, 5, 6, 9]
print(solve(nums))

ইনপুট

[12, 15, 2, 5, 6, 9]

আউটপুট

True
  1. পাইথনে অ্যারে মনোটোনিক (Monotonic) কিনা চেক করা

  2. পাইথনে ইনসারশন সর্ট প্রোগ্রাম

  3. পাইথন প্রোগ্রাম: ইনসারশন সোর্ট অ্যালগরিদম

  4. পাইথনে লিস্ট খালি কিনা যাচাই করার প্রোগ্রাম