Check if a number is a Pangram or not - GeeksforGeeks

14 May, 2021
Given an integer N, the task is to check whether the given number is a pangram or not. Note: A Pangram Number contains every digit [0- 9] at least once.
Examples:
Input : N = 10239876540022Output : YesExplanation: N contains all the digits from 0 to 9. Therefore, it is a pangram.
Input : N = 234567890Output : NoExplanation: N doesn’t contain the digit 1. Therefore, it is not a pangram.
Set-based Approach: The idea is to use Sets to store the count of distinct digits present in N. Follow the steps below to solve the problem:
Convert the number N to equivalent string.
Convert the string to a set.
If the size of the Set is 10, then it contains all the distinct possible digits [0 – 9]. Therefore, print “Yes”.
Otherwise, print “No”
Below is the implementation of the above approach:
C++
Java
Python3
C#
Javascript
// C++ implementation of above approach#include <bits/stdc++.h>using namespace std; // Function to check if N// is a Pangram or notstring numberPangram(string N){     // Add all characters pf arrNum to set    set<char> setNum;     for (int i = 0; i < N.length(); i++) {        setNum.insert(N[i]);    }     // If the length of set is 10    // The number is a Pangram    if (setNum.size() == 10)        return "True";    else        return "False";} // Driver codeint main(){    string N = "10239876540022";    cout << (numberPangram(N));} // This code is contributed by ukasp.
// Java implementation of above approachimport java.math.BigInteger;import java.util.HashSet; class GFG{     // Function to check if N// is a Pangram or notstatic String numberPangram(BigInteger N){         // Stores equivalent string    // representation of N    String num = N.toString();     // Convert the string to Character array    char[] arrNum = num.toCharArray();     // Add all characters pf arrNum to set    HashSet<Character> setNum = new HashSet<Character>();     for(char ch : arrNum)    {        setNum.add(ch);    }         // If the length of set is 10    // The number is a Pangram    if (setNum.size() == 10)        return "True";    else        return "False";} // Driver codepublic static void main(String[] args){    BigInteger N = new BigInteger("10239876540022");    System.out.print(numberPangram(N));}} // This code is contributed by abhinavjain194
# Python3 implementation of above approach # Function to check if N# is a Pangram or notdef numberPangram(N):       # Stores equivalent string    # representation of N    num = str(N)         # Convert the string to set    setnum = set(num)         # If the length of set is 10    if(len(setnum) == 10):                 # The number is a Pangram        return True    else:        return False  # Driver Code N = 10239876540022print(numberPangram(N))
// C# implementation of above approachusing System;using System.Globalization;using System.Numerics;using System.Collections.Generic;class GFG{     // Function to check if N// is a Pangram or notstatic String numberPangram(ulong  N){         // Stores equivalent string    // representation of N    string num = N.ToString();     // Convert the string to Character array    char[] arrNum = num.ToCharArray();     // Add all characters pf arrNum to set   HashSet<char> setNum = new HashSet<char>();     foreach(char ch in arrNum)    {        setNum.Add(ch);    }         // If the length of set is 10    // The number is a Pangram    if (setNum.Count == 10)        return "True";    else        return "False";} // Driver Code    static void Main() {      ulong  N = 10239876540022;      Console.Write(numberPangram(N));      }} // This code is contributed by SoumikMondal
<script> // Javascript implementation of above approach // Function to check if N// is a Pangram or notfunction numberPangram(N){     // Add all characters pf arrNum to set    var setNum = new Set();     for (var i = 0; i < N.length; i++) {        setNum.add(N[i]);    }     // If the length of set is 10    // The number is a Pangram    if (setNum.size == 10)        return "True";    else        return "False";} // Driver codevar N = "10239876540022";document.write(numberPangram(N)); </script>
True
 
Time Complexity: O(log10N * log(log10N))Auxiliary Space: O(1)
Hashing-based Approach: Follow the steps to solve the problem:
Convert N to its equivalent string.
Calculate frequencies of all characters in this string. Counter() function can be used for this purpose in Python.
If the length of the Dictionary / HashMap storing the frequencies is 10, the number contains all possible distinct digits. Therefore, print “Yes“.
Otherwise, print “No”.
Below is the implementation of the above approach:
Python3
# Python implementation of above approach from collections import Counter # Function to check if# N is a Pangram or notdef numberPangram(N):       # Stores equivalent string    # representation of N    num = str(N)         # Count frequencies of    # digits present in N    frequency = Counter(num)         # If the length of the    # dictionary frequency is 10    if(len(frequency) == 10):                 # The number is a Pangram        return True    else:        return False  # Driver Code N =10239876540022print(numberPangram(N))
True
 
Time Complexity: O(log10N * log(log10N))Auxiliary Space: O(1)
abhinavjain194
SoumikMondal
ukasp
rutvik_56
cpp-map
frequency-counting
Java-HashMap
number-digits
Python dictionary-programs
Hash
Mathematical
Hash
Mathematical
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Quadratic Probing in Hashing
Rearrange an array such that arr[i] = i
Hashing in Java
Non-Repeating Element
What are Hash Functions and How to choose a good Hash Function?
Program for Fibonacci numbers
Write a program to print all permutations of a given string
C++ Data Types
Set in C++ Standard Template Library (STL)
Coin Change | DP-7