ধরুন, আমাদের একটি অ্যারে দেওয়া হয়েছে যাতে পূর্ণসংখ্যা উপাদান রয়েছে। আমাদের খুঁজে বের করতে হবে যদি আমরা শুধুমাত্র একটি সোয়াপ অপারেশন করতে পারি তাহলে অ্যারের মানগুলিকে অ-হ্রাস না করে সাজানো যায় কিনা। যদি সম্ভব হয়, আমরা বলি এটা করা যেতে পারে, অন্যথায় নয়।
সুতরাং, যদি ইনপুটটি 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
- যদি input_list[i] temp_list[i] এর মত না হয়, তাহলে
- যদি 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