কম্পিউটার

পাইথনে একটি অ্যারে সাজানো এবং ঘোরানো হয়েছে কিনা তা পরীক্ষা করুন


ধরুন আমাদের n অনন্য মানের একটি অ্যারে আছে। এই অ্যারেটি সাজানো এবং ঘড়ির কাঁটার বিপরীতে ঘোরানো হয়েছে কিনা তা আমাদের পরীক্ষা করতে হবে। এখানে অন্তত একটি ঘূর্ণন প্রয়োজন তাই একটি সম্পূর্ণ সাজানো অ্যারে সাজানো এবং ঘোরানো হিসাবে বিবেচিত হয় না৷

সুতরাং, যদি ইনপুটটি nums =[4,5,6,8,1,3] এর মত হয়, তাহলে আউটপুটটি True হবে কারণ আমরা ঘড়ির কাঁটার দিকে দুইবার ঘোরাতে পারি তাহলে এটি [1, 3] এর মতো সাজানো হবে। 4, 5, 6, 8]।

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

  • min_element :=ন্যূনতম সংখ্যা
  • min_index :=সংখ্যায় min_element এর সূচক
  • fore_sorted :=সত্য
  • আমি 1 থেকে min_index - 1 রেঞ্জের জন্য, কর
    • যদি nums[i]
    • fore_sorted :=মিথ্যা
    • লুপ থেকে বেরিয়ে আসুন
  • after_sorted :=সত্য
  • আমার জন্য min_index + 1 থেকে nums - 1 এর পরিসরে, করুন
    • যদি nums[i]
    • after_sorted :=মিথ্যা
    • লুপ থেকে বেরিয়ে আসুন
  • যদি আগে_বাছাই করা এবং পরে_বাছাই করা হয় সত্য এবং সংখ্যার শেষ উপাদান
  • সত্য ফেরান
  • অন্যথায়,
    • মিথ্যে ফেরত দিন
  • আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

    উদাহরণ

    def solve(nums):
       min_element = 999999
       min_index = -1
       min_element = min(nums)
       min_index = nums.index(min_element) before_sorted = True
       for i in range(1, min_index):
          if nums[i] < nums[i - 1]:
             before_sorted = False
             break
       after_sorted = True
       for i in range(min_index + 1, len(nums)):
          if nums[i] < nums[i - 1]:
             after_sorted = False
             break
       if before_sorted and after_sorted and nums[-1] < nums[0]:
          return True
       else:
          return False
    nums = [4,5,6,8,1,3]
    print(solve(nums))

    ইনপুট

    [4,5,6,8,1,3]

    আউটপুট

    True

    1. পাইথনের একটি সাজানো অ্যারেতে একটি সংখ্যা সংখ্যাগরিষ্ঠ উপাদান কিনা তা পরীক্ষা করুন

    2. পাইথনে ঘূর্ণিত সাজানো অ্যারে অনুসন্ধান করুন

    3. পাইথনে সাজানো অ্যারে মার্জ করুন

    4. পাইথনে a.sort, sorted(a), np_argsort(a) এবং np.lexsort(b, a)