ধরুন আমাদের কাছে A, এবং B নামে দুটি সংখ্যার তালিকা রয়েছে। আমাদের A-তে কিছু সাবলিস্ট নিতে হবে এবং এটিকে বিপরীত করতে হবে। তারপর A কে B তে পরিণত করা সম্ভব কি না তা পরীক্ষা করুন। আমরা সাবলিস্ট নিতে পারি এবং যেকোনবার এটিকে বিপরীত করতে পারি।
সুতরাং, যদি ইনপুটটি A =[2, 3, 4, 9, 10], B =[4, 3, 2, 10, 9] এর মত হয়, তাহলে আউটপুটটি True হবে যেমন আমরা বিপরীত করতে পারি [2,3,4] ] এবং [9,10]।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- res :=একটি মানচিত্র, প্রাথমিকভাবে খালি
- সংখ্যায় প্রতিটি n এর জন্য, করুন
- res[n] :=res[n] + 1
- লক্ষ্যে প্রতিটি টি-এর জন্য, করুন
- res[t] :=res[t] - 1
- সত্য প্রত্যাবর্তন করুন যখন 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