সমস্যা বিবরণ
একটি অ্যারে দেওয়া আছে। প্রতিটি উপাদানের ঘটনার সংখ্যা (frequency) ইউনিক কিনা চেক করতে হবে। যদি দুটি উপাদানের frequency একই হয় তবে false, অন্যথায় true ফেরত দিন।
উদাহরণ: [1, 1, 2, 2, 2, 3, 4, 4, 4, 4] → true (১: ২ বার, ২: ৩ বার, ৩: ১ বার, ৪: ৪ বার - সব ইউনিক)।
সমাধানের পদ্ধতি
- অ্যারেতে প্রতিটি উপাদানের ফ্রিকোয়েন্সি গুনুন (ডিকশনারি ব্যবহার করে)।
- ফ্রিকোয়েন্সি মানগুলো একটি সেট বা ডিকশনারিতে রাখুন।
- যদি কোনো ফ্রিকোয়েন্সি আগে থেকে থাকে, false ফেরত দিন।
- সব یونিক হলে true ফেরত দিন।
পাইথন উদাহরণ
class Solution(object):
def uniqueOccurrences(self, arr):
freq = {}
for num in arr:
freq[num] = freq.get(num, 0) + 1
seen = set()
for count in freq.values():
if count in seen:
return False
seen.add(count)
return True
ob1 = Solution()
print(ob1.uniqueOccurrences([1, 1, 2, 2, 2, 3, 4, 4, 4, 4]))
ইনপুট
[1, 1, 2, 2, 2, 3, 4, 4, 4, 4]
আউটপুট
True
সংক্ষিপ্ত পদ্ধতি (Pythonic)
from collections import Counter
def uniqueOccurrences(arr):
freq = Counter(arr)
return len(freq.values()) == len(set(freq.values()))