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

পাইথনে একটি সংখ্যায় প্রতিটি ডিজিটের ফ্রিকোয়েন্সি সেই ডিজিটের চেয়ে কম কিনা যাচাই করা

ধরি আমাদের একটি সংখ্যা n আছে। আমাদের যাচাই করতে হবে n-র প্রতিটি ডিজিটের ঘটনা সংখ্যা (ফ্রিকোয়েন্সি) সেই ডিজিটের মান থেকে কম বা সমান কিনা।

উদাহরণস্বরূপ, n = 5162569 হলে আউটপুট হবে True, কারণ ডিজিট ও ফ্রিকোয়েন্সি জোড়াগুলো: (5, 2), (1, 1), (6, 2), (9, 1) — সবখানেই ফ্রিকোয়েন্সি ডিজিটের মান থেকে কম বা সমান।

সমাধানের ধাপসমূহ

  • 0 থেকে 9 পর্যন্ত প্রতিটি ডিজিট i-এর জন্য:
    • temp := n, cnt := 0
    • যতক্ষণ temp শূন্য না হয়:
      • যদি temp % 10 == i, তবে cnt বাড়ান
      • যদি cnt > i, তবে false রিটার্ন করুন
      • temp := temp // 10
  • true রিটার্ন করুন

উদাহরণ

def solve(n):
    for i in range(10):
        temp = n
        cnt = 0
        while temp:
            if temp % 10 == i:
                cnt += 1
            if cnt > i:
                return False
            temp //= 10
    return True

s = 5162569
print(solve(s))

ইনপুট

5162569

আউটপুট

True
  1. পাইথন - তালিকার সব মান একটি দেওয়া মানের চেয়ে ছোট কিনা যাচাই করা

  2. পাইথনে Two Sum Less Than K সমস্যা সমাধান

  3. পাইথনে পাসওয়ার্ডের বৈধতা যাচাই করার প্রোগ্রাম

  4. পাইথনে x এর চেয়ে ছোট সর্ববৃহৎ পূর্ণসংখ্যা কীভাবে খুঁজে বের করবেন?