Check if the frequency of all the digits in a number is same

Given a positive number ‘N’, the task is to find whether ‘N’ is balanced or not. Output ‘YES’ if ‘N’ is a balanced number else ‘NO’.

A number is balanced if the frequency of all the digits in it is same i.e. all the digits appear the same number of times.

Examples:

Input: N = 1234567890
Output: YES
The frequencies of all the digits are same.
i.e. every digit appears same number of times.

Input: N = 1337
Output: NO


Approach:

  • Create an array freq[] of size 10 which will store the frequency of each digit in ‘N’.
  • Then, check if all the digits of ‘N’ have the same frequency or not.
  • If yes then print ‘YES‘ or ‘NO‘ otherwise.

Below is the implementation of the above approach:

C++

// C++ implementation of the approach
#include
using namespace std;

// returns true if the number
// passed as the argument
// is a balanced number.
bool isNumBalanced(int N)
{

string st = to_string(N);
bool isBalanced = true;

// frequency array to store
// the frequencies of all
// the digits of the number
int freq[10] = {0};
int i = 0;
int n = st.size();

for (i = 0; i < n; i++) // store the frequency of // the current digit freq[st[i] - '0']++; for (i = 0; i < 9; i++) { // if freq[i] is not // equal to freq[i + 1] at // any index 'i' then set // isBalanced to false if (freq[i] != freq[i + 1]) isBalanced = false; } // return true if // the string is balanced if (isBalanced) return true; else return false; } // Driver code int main() { int N = 1234567890; bool flag = isNumBalanced(N); if (flag) cout << "YES"; else cout << "NO"; } // This code is contributed by ihritik [tabby title = "Java"]

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java implementation of the approach
class GFG {
  
    // returns true if the number
    // passed as the argument
    // is a balanced number.
    static boolean isNumBalanced(int N)
    {
  
        String st = "" + N;
        boolean isBalanced = true;
  
        // frequency array to store
        // the frequencies of all
        // the digits of the number
        int[] freq = new int[10];
        int i = 0;
        int n = st.length();
  
        for (i = 0; i < n; i++)
  
            // store the frequency of
            // the current digit
            freq[st.charAt(i) - '0']++;
  
        for (i = 0; i < 9; i++) {
  
            // if freq[i] is not
            // equal to freq[i + 1] at
            // any index 'i' then set
            // isBalanced to false
            if (freq[i] != freq[i + 1])
                isBalanced = false;
        }
  
        // return true if
        // the string is balanced
        if (isBalanced)
            return true;
        else
            return false;
    }
  
    // Driver code
    public static void main(String[] args)
    {
        int N = 1234567890;
        boolean flag = isNumBalanced(N);
  
        if (flag)
            System.out.println("YES");
        else
            System.out.println("NO");
    }
}

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python3 implementation of the above approach
  
# Returns true if the number passed as 
# the argument is a balanced number. 
def isNumBalanced(N): 
  
    st = str(N) 
    isBalanced = True
  
    # Frequency array to store the frequencies
    # of all the digits of the number 
    freq = [0] * 10
    n = len(st) 
  
    for i in range(0, n): 
  
        # store the frequency of the 
        # current digit 
        freq[int(st[i])] += 1
  
    for i in range(0, 9): 
  
        # if freq[i] is not equal to 
        # freq[i + 1] at any index 'i'
        # then set isBalanced to false 
        if freq[i] != freq[i + 1]: 
            isBalanced = False
  
    # Return true if the string 
    # is balanced 
    if isBalanced: 
        return True
    else:
        return False
  
# Driver code 
if __name__ == "__main__"
      
    N = 1234567890
    flag = isNumBalanced(N) 
  
    if flag: 
        print("YES"
    else:
        print("NO"
      
# This code is contributed by Rituraj Jain

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// CSHARP implementation of the above approach
using System;
  
class Program
{
// returns true if the number
// passed as the argument
// is a balanced number.
static bool isNumBalanced(int N)
{
    String st = "" + N;
    bool isBalanced = true;
    // frequency array to store
    // the frequencies of all
    // the digits of the number
    int[] freq = new int[10];
    int i = 0;
    int n = st.Length;
    for (i = 0; i < n; i++)
    // store the frequency of
    // the current digit
    freq[st[i] - '0']++;
    for (i = 0; i < 9; i++) 
    {
        // if freq[i] is not
        // equal to freq[i + 1] at
        // any index ‘i’ then set
        // isBalanced to false
        if (freq[i] != freq[i + 1])
        isBalanced = false;
          
    }
    // return true if
    // the string is balanced
    if (isBalanced)
    return true;
    else
    return false;
      
      
}
  
// Driver code
static void Main()
{
    int N = 1234567890;
    bool flag = isNumBalanced(N);
    if (flag)
    Console.WriteLine("YES");
    else
    Console.WriteLine("NO");
  
}
// This code is contributed by ANKITRAI1
}

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
// PHP implementation of the approach
  
// returns true if the number
// passed as the argument
// is a balanced number.
function isNumBalanced($N)
{
    $st = "" . strval($N);
    $isBalanced = true;
  
    // frequency array to store
    // the frequencies of all
    // the digits of the number
    $freq = array_fill(0, 10, 0);
    $i = 0;
    $n = strlen($st);
  
    for ($i = 0; $i < $n; $i++)
  
        // store the frequency of
        // the current digit
        $freq[ord($st[$i]) - ord('0')]++;
  
    for ($i = 0; $i < 9; $i++) 
    {
  
        // if freq[i] is not
        // equal to freq[i + 1] at
        // any index 'i' then set
        // isBalanced to false
        if ($freq[$i] != $freq[$i + 1])
            $isBalanced = false;
    }
  
    // return true if
    // the string is balanced
    if ($isBalanced)
        return true;
    else
        return false;
}
  
// Driver code
$N = 1234567890;
$flag = isNumBalanced($N);
  
if ($flag)
    echo "YES\n";
else
    echo "NO\n";
  
// This code is contributed by mits
?>

chevron_right


Output:

YES


My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.