কম্পিউটার

পাইথনে এক অদলবদল দিয়ে অ্যারে সাজানো যায় কিনা তা পরীক্ষা করুন


ধরুন, আমাদের একটি অ্যারে দেওয়া হয়েছে যাতে পূর্ণসংখ্যা উপাদান রয়েছে। আমাদের খুঁজে বের করতে হবে যদি আমরা শুধুমাত্র একটি সোয়াপ অপারেশন করতে পারি তাহলে অ্যারের মানগুলিকে অ-হ্রাস না করে সাজানো যায় কিনা। যদি সম্ভব হয়, আমরা বলি এটা করা যেতে পারে, অন্যথায় নয়।

সুতরাং, যদি ইনপুটটি input_list =[7, 8, 12, 10, 11, 9] এর মত হয়, তাহলে আউটপুট হবে "কন করা যায়"

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

  • temp_list :=তালিকা ইনপুট_লিস্টের একটি অনুলিপি
  • তালিকা temp_list সাজান
  • swap_count :=0
  • আমি রেঞ্জ 0 থেকে ইনপুট_লিস্টের আকারের জন্য, করুন
    • যদি input_list[i] temp_list[i] এর মত না হয়, তাহলে
      • swap_count :=swap_count + 1
  • যদি swap_count 0 এর মত হয় অথবা swap_count 2 এর মত হয়, তাহলে
    • সত্য ফেরান
  • অন্যথায়,
    • মিথ্যে ফেরত দিন

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

উদাহরণ

from copy import deepcopy
def solve(input_list):
   temp_list = deepcopy(input_list)
   temp_list.sort()
   swap_count = 0
   for i in range(len(input_list)):
      if input_list[i] != temp_list[i]:
         swap_count += 1
   if swap_count == 0 or swap_count == 2:
      print("Can be done")
   else:
      print("Can't be done")
input_list = [7, 8, 12, 10, 11, 9] 
solve(input_list)

ইনপুট

[7, 8, 12, 10, 11, 9]

আউটপুট

Can be done

  1. পাইথনে এক অদলবদল সহ লেক্সিকোগ্রাফিকভাবে সবচেয়ে ছোট স্ট্রিং খুঁজে বের করার প্রোগ্রাম

  2. পাইথনে এক অদলবদল সহ পূর্ববর্তী স্থানান্তর

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

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