কম্পিউটার

পাইথনে ফেয়ার ক্যান্ডি অদলবদল


ধরুন A এবং B দুইজন বন্ধু। তাদের বিভিন্ন আকারের ক্যান্ডি বার রয়েছে। এখানে A[i] হল A-এর মালিকানাধীন ক্যান্ডির i-th বারের মাপ, এবং B[j] হল B-এর মালিকানাধীন ক্যান্ডির j-তম বারের আকার।

যেহেতু তারা বন্ধু, তারা প্রতিটি একটি ক্যান্ডি বার বিনিময় করতে চায় যাতে বিনিময়ের পরে, A এবং B উভয়েরই একই পরিমাণ ক্যান্ডি থাকে। (একজন ব্যক্তির কাছে থাকা মোট ক্যান্ডির পরিমাণ হল তাদের কাছে থাকা ক্যান্ডি বারের মাপের সমষ্টি।) আমাদেরকে একটি পূর্ণসংখ্যা অ্যারে দিতে হবে, ধরুন উত্তর, যেখানে ans[0] হল ক্যান্ডি বারের আকার যা A কে অবশ্যই বিনিময় করতে হবে এবং ans[1] হল ক্যান্ডি বারের আকার যা B কে অবশ্যই বিনিময় করতে হবে। যদি একাধিক উত্তর থাকে, আমরা তাদের মধ্যে শুধুমাত্র একটি ফেরত দেব।

উদাহরণস্বরূপ, যদি A =[1, 2] এবং B =[2, 3] হয়, তাহলে আউটপুট হবে [1, 2]

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

  • A এর যোগফল এবং B এর যোগফলের মধ্যে পার্থক্য নিন, তারপর এটিকে 2 দ্বারা ভাগ করুন এবং পূর্ণসংখ্যা অংশটিকে পার্থক্য করুন
  • B কে একটি সেটে রূপান্তর করুন
  • আমি A
      তে
    • যদি আমি – বি-তে পার্থক্য করে, তবে [i, i – পার্থক্য]
    • ফেরত দিন

উদাহরণ

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

class Solution(object):
   def fairCandySwap(self, A, B):
      diff = (sum(A) - sum(B))//2
      B=set(B)
      for i in A:
         if i- diff in B:
            return [i,i-diff]
ob1 = Solution()
print(ob1.fairCandySwap([1,2], [2,3]))

ইনপুট

[1,2]
[2,3]

আউটপুট

[1,2]

  1. পাইথনে Sqrt(x)

  2. issuperset() পাইথনে

  3. কিভাবে Python ব্যবহার করে দুটি ভেরিয়েবল অদলবদল করবেন?

  4. কিভাবে পাইথন ব্যবহার করে সোয়াপ ফাইল অপসারণ করবেন?