কম্পিউটার

পাইথনে সাবলিস্ট যোগ অপারেশন সহ একটি তালিকাকে অন্যটির সাথে অভিন্ন রূপান্তর করার প্রোগ্রাম


ধরুন আমাদের দুটি তালিকা আছে l1 এবং l2, আমাদের এই ক্রিয়াকলাপটি বারবার প্রয়োগ করে তালিকাগুলিকে সমান করতে হবে - একটি সাবলিস্ট চয়ন করুন এবং পুরো সাবলিস্টটিকে তার যোগফল দিয়ে প্রতিস্থাপন করুন। অবশেষে উপরের ক্রিয়াকলাপগুলি প্রয়োগ করার পরে সম্ভাব্য দীর্ঘতম ফলাফলের তালিকার আকার ফিরিয়ে দিন। যদি কোন সমাধান না হয়, -1 রিটার্ন করুন।

সুতরাং, যদি ইনপুটটি l1 =[1, 4, 7, 1, 2, 10] l2 =[5, 6, 1, 3, 10] এর মতো হয়, তাহলে আউটপুট হবে 4, যেন আমরা এই অপারেশনটি সম্পাদন করি অনুসরণ করে -

  • l1 এর সাবলিস্ট নিন [1, 4] আমরা পাব [5, 7, 1, 2, 10]
  • l1 এর সাবলিস্ট নিন [1, 2] আমরা পাব [5, 7, 3, 10]
  • l2 এর সাবলিস্ট [6, 1] নিন আমরা [5, 7, 3, 10] পাব।

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

  • i :=l1 - 1 এর আকার, j :=l2 - 1 এর আকার, res :=0
  • যখন i>=0 এবং j>=0, do
    • যদি l1[i] l2[j] এর মত হয়, তাহলে
      • res :=res + 1, i :=i - 1, j :=j - 1
    • অন্যথায় যখন l1[i]
    • যদি i> 0 অ-শূন্য হয়, তাহলে
      • l1[i - 1] :=l1[i - 1] + l1[i]
    • i :=i - 1
  • অন্যথায় যখন l1[i]> l2[j], তারপর
    • যদি j> 0 হয়, তাহলে
      • l2[j - 1] :=l2[j - 1] + l2[j]
    • j :=j - 1
  • রিটার্ন রিটার্ন যদি আমি -1 এর মতো হয় এবং j একই হয় -1 অন্যথায় -1 ফেরত দেয়
  • আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

    উদাহরণ

    class Solution:
       def solve(self, l1, l2):
          i, j, res = len(l1) - 1, len(l2) - 1, 0
          while i >= 0 and j >= 0:
             if l1[i] == l2[j]:
                res, i, j = res + 1, i - 1, j - 1
             elif l1[i] < l2[j]:
                if i > 0:
                   l1[i - 1] += l1[i]
                i -= 1
             elif l1[i] > l2[j]:
                if j > 0:
                   l2[j - 1] += l2[j]
                j -= 1
             return res if i == -1 and j == -1 else -1
    ob = Solution()
    l1 = [1, 4, 7, 1, 2, 10]
    l2 = [5, 6, 1, 3, 10] print(ob.solve(l1, l2))

    ইনপুট

    [1, 4, 7, 1, 2, 10], [5, 6, 1, 3, 10]

    আউটপুট

    4

    1. পাইথন প্রোগ্রামে একটি তালিকাকে স্ট্রিংয়ে রূপান্তর করুন

    2. পাইথন প্রোগ্রাম একটি তালিকার ক্রমবর্ধমান যোগফল খুঁজে বের করতে

    3. একটি তালিকাকে স্ট্রিং-এ রূপান্তর করতে পাইথন প্রোগ্রাম

    4. পাইথন প্রোগ্রাম একই আইটেমগুলির সাথে একটি অ্যারেকে একটি সাধারণ তালিকায় রূপান্তর করতে