একটি ইন্টিজার অ্যারে দেওয়া আছে। শুধু একটি সোয়্যাপ অপারেশন দিয়ে অ্যারেটি non-decreasing order-এ সর্ট করা সম্ভব কিনা যাচাই করুন।
উদাহরণ
ইনপুট: input_list = [7, 8, 12, 10, 11, 9]
আউটপুট: Can be done
অ্যালগরিদম
- অ্যারের কপি বানিয়ে সর্ট করুন।
- মূল ও সর্টেড অ্যারে তুলনা করুন।
- যদি ০ বা ২টি জায়গায় পার্থক্য থাকে, তবে এক সোয়্যাপে সর্ট সম্ভব।
উদাহরণ কোড
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) # Output: Can be done
ইনপুট
[7, 8, 12, 10, 11, 9]
আউটপুট
Can be done