मान लीजिए कि हमारे पास ए और बी नामक संख्याओं की दो सूचियां हैं। हमें ए में कुछ सबलिस्ट लेना है और इसे उल्टा करना है। फिर जांचें कि क्या ए को बी में बदलना संभव है या नहीं। हम सबलिस्ट ले सकते हैं और इसे कितनी भी बार उलट सकते हैं।
इसलिए, यदि इनपुट ए =[2, 3, 4, 9, 10], बी =[4, 3, 2, 10, 9] जैसा है, तो आउटपुट सही होगा क्योंकि हम [2,3,4] को उलट सकते हैं ] और [9,10]।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- res :=एक नक्शा, शुरू में खाली
- अंकों में प्रत्येक n के लिए, करें
- res[n] :=res[n] + 1
- लक्ष्य में प्रत्येक t के लिए, करें
- res[t] :=res[t] - 1
- सही लौटें जब रेस के मानों में सभी तत्व 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