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

পাইথনে একটি লিস্টকে অন্য লিস্টে রূপান্তর করার জন্য ন্যূনতম এডজেসেন্ট সোয়াপ গণনা করার প্রোগ্রাম

ধরা যাক L1 এবং L2 নামক দুটি সংখ্যার লিস্ট রয়েছে, যerais দৈর্ঘ্য n এবং প্রতিটি মান তার নিজস্ব লিস্টে অনন্য, মানরা ১ থেকে n পর্য diocèseে। আমাদের L1-কে L2-তে রূপান্তর করার জন্য ন্যূনতম কতগুলো এডজেসেন্ট (সন্নিকট) সোয়াপ প্রয়োজন তা বের করতে হবে।

উদাহরণ

ইনপুট: L1 = [0, 1, 2, 3], L2 = [2, 0, 1, 3]

আউটপুট: 2

ব্যাখ্যা: প্রথমে ১ এবং ২ সোয়াপ করলে [0, 2, 1, 3], তারপর ০ এবং ২ সোয়াপ করলে [2, 0, 1, 3] হয় যা L2-এর সমান।

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

  1. ans := 0
  2. প্রতিটি req এর জন্য L2-এ:
    • i := L1.index(req) (req-এর L1-এ ইন্ডেক্স)
    • L1- থেকে i-তম এলিমেন্ট মুছুন
    • ans := ans + i
  3. ans ফেরত দিন

পাইথন ইমপ্লিমেন্টেশন

class Solution:
    def solve(self, L1, L2):
        ans = 0
        for req in L2:
            i = L1.index(req)
            L1.pop(i)
            ans += i
        return ans

ob = Solution()
L1 = [0, 1, 2, 3]
L2 = [2, 0, 1, 3]
print(ob.solve(L1, L2))

ইনপুট

[0, 1, 2, 3], [2, 0, 1, 3]

আউটপুট

2
  1. পাইথনে হাম্বল ম্যাট্রিক্সের সম্ভাব্য অরেঞ্জমেন্টের সংখ্যা বের করা

  2. পাইথনে স্ট্রিং-এর সকল ভিন্ন উপস্ট্রিংয়ের সংখ্যা বের করার প্রোগ্রাম

  3. পাইথন প্রোগ্রাম - n নোড দিয়ে BST-এর সংখ্যা বের করুন

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