ধরুন আমাদের সমস্ত মৌলিক সংখ্যা সহ একটি অ্যারে সংখ্যা রয়েছে। সংখ্যায় উপস্থিত সমস্ত সংখ্যার গুণফল একটি নিখুঁত বর্গ কিনা তা আমাদের পরীক্ষা করতে হবে।
সুতরাং, যদি ইনপুটটি nums =[3,3,7,7] এর মত হয়, তাহলে আউটপুটটি True হবে কারণ সংখ্যার সমস্ত উপাদানের গুণফল হল 441 যা 21^2 =441 হিসাবে একটি নিখুঁত বর্গ।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- m :=একটি মানচিত্র যেখানে সমস্ত উপাদান সংখ্যা এবং তাদের ফ্রিকোয়েন্সি রয়েছে
- সংখ্যায় প্রতিটি কীর জন্য, করুন
- যদি m[key] বিজোড় হয়, তাহলে
- মিথ্যে ফেরত দিন
- যদি m[key] বিজোড় হয়, তাহলে
- সত্য ফেরান
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
from collections import defaultdict def solve(nums) : m = defaultdict(int) for key in nums : m[key] += 1 for key in nums : if m[key] % 2 == 1 : return False return True nums = [3,3,7,7] print(solve(nums))
ইনপুট
[3,3,7,7]
আউটপুট
True