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

পাইথনে লিস্টে প্রতিটি ভ্যালুর আবির্ভাব সংখ্যা ইউনিক কিনা যাচাই করা

দেওয়া একটি সংখ্যা লিস্ট (nums) এ প্রতিটি ভ্যালু কতবার আসছে তা গণনা করে, সব কাউন্ট ইউনিক কিনা (অর্থাৎ কোনো দুটি ভ্যালুর ফ্রিকোয়েন্সি একই নয়) তা যাচাই করতে হবে।

উদাহরণ: [6, 4, 2, 9, 4, 2, 2, 9, 9, 9] → ৬:১বার, ৪:২বার, ২:৩বার, ৯:৪বার → সব কাউন্ট ইউনিক → True।

সমাধান: Counter + Set

  1. Counter দিয়ে ফ্রিকোয়েন্সি ম্যাপ বানান।
  2. সব কাউন্টের লিস্ট নিন।
  3. লিস্টের দৈর্ঘ্য এবং সেটের দৈর্ঘ্য সমান কিনা চেক করুন। সমান হলে সব ইউনিক।

পাইথন কোড

from collections import Counter

class Solution:
    def solve(self, nums):
        num_counts = dict(Counter(nums))
        occurrences = num_counts.values()
        return len(occurrences) == len(set(occurrences))

ob = Solution()
print(ob.solve([6, 4, 2, 9, 4, 2, 2, 9, 9, 9]))  # True

টাইম কমপ্লেক্সিটি: O(n), স্পেস: O(n)। খুবই সংক্ষিপ্ত ও পাইথনিক সমাধান।

  1. পাইথনে হিপ লিস্ট ম্যাক্স হিপ কিনা চেক করা

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

  3. দেওয়া স্ট্রিংটি পাইথন কিওয়ার্ড কিনা চেক করার প্রোগ্রাম

  4. পাইথনে বাক্য প্যাংগ্রাম (pangram) কিনা যাচাই করার প্রোগ্রাম