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

পাইথনে একটি লিস্টের সাবলিস্ট রিভার্স করে দ্বিতীয় লিস্ট তৈরি করা সম্ভব কিনা যাচাই করার প্রোগ্রাম


ধরা যাক A এবং B নামে দুটি সংখ্যার তালিকা আছে। A-তে একটি সাবলিস্ট নিয়ে রিভার্স করলে B তৈরি হয় কিনা যাচাই করতে হবে। সাবলিস্ট রিভার্স যেকোনো বার করা যায়।

উদাহরণ: A = [2, 3, 4, 9, 10], B = [4, 3, 2, 10, 9] হলে আউটপুট True, কারণ [2,3,4] এবং [9,10] রিভার্স করলে B হয়।

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

  • res := খালি ম্যাপ
  • প্রতিটি n-এর জন্য nums-এ: res[n]++
  • প্রতিটি t-এর জন্য target-এ: res[t]--
  • True ফেরত দিন যদি res-এর সব ভ্যালু 0 হয়।

উদাহরণ কোড

from collections import defaultdict
class Solution:
    def solve(self, nums, target):
        res = defaultdict(int)
        for n in nums:
            res[n] += 1
        for t in target:
            res[t] -= 1
        return all(n == 0 for n in res.values())

ob = Solution()
A = [2, 3, 4, 9, 10]
B = [4, 3, 2, 10, 9]
print(ob.solve(A, B))

ইনপুট

[2, 3, 4, 9, 10], [4, 3, 2, 10, 9]

আউটপুট

True
  1. পাইথনে একটি ট্রি অন্য ট্রির সাবট্রি কিনা যাচাই করা

  2. পাইথনে BST-এ একটি মান আছে কিনা যাচাই করার প্রোগ্রাম

  3. পাইথন প্রোগ্রাম: সাবলিস্টের দ্বিতীয় এলিমেন্ট অনুযায়ী লিস্ট সর্ট করা (Duplicate)

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