Imprimir todos los dígitos repetidos presentes en un número dado en orden ordenado

Dado un número entero N , la tarea es imprimir todos los dígitos repetidos presentes en N en orden ordenado.

Ejemplos:

Entrada: N = 45244336543
Salida: 3 4 5
Explicación: Los dígitos duplicados son 3 4 5

Entrada: N = 987065467809
Salida: 0 6 7 8 9

Planteamiento: La idea es usar Hashing para almacenar la frecuencia de dígitos de N e imprimir aquellos dígitos cuya frecuencia exceda 1.

A continuación se muestra la implementación del enfoque anterior:

C++

// C++ program for the above approach
#include <bits/stdc++.h>
using namespace std;
 
// Function to print repeating
// digits present in the number N
void printDup(string N)
{
  // Stores the count of
  // unique digits
  int res = 0;
 
  // Map to store frequency
  // of each digit
  int cnt[10];
 
  // Set count of all digits to 0
  for (int i = 0; i < 10; i++)
    cnt[i] = 0;
 
  // Traversing the string
  for (int i = 0; i < N.size(); i++) {
 
    // Convert the character
    // to equivalent integer
    int digit = (N[i] - '0');
 
    // Increase the count of digit
    cnt[digit] += 1;
  }
 
  // Traverse the Map
  for (int i = 0; i < 10; i++) {
 
    // If frequency
    // of digit exceeds 1
    if (cnt[i] > 1)
      cout << i << " ";
  }
 
  cout << endl;
}
 
// Driver Code
int main()
{
 
  string N = "45244336543";
 
  // Function call to print
  // repeating digits in N
  printDup(N);
 
  return 0;
}
 
// This code is contributed by Kingash.

Java

// Java program for the above approach
import java.io.*;
import java.util.*;
 
class GFG {
 
  // Function to print repeating
  // digits present in the number N
  static void printDup(String N)
  {
    // Stores the count of
    // unique digits
    int res = 0;
 
    // Map to store frequency
    // of each digit
    int cnt[] = new int[10];
 
    // Traversing the string
    for (int i = 0; i < N.length(); i++) {
 
      // Convert the character
      // to equivalent integer
      int digit = (N.charAt(i) - '0');
 
      // Increase the count of digit
      cnt[digit] += 1;
    }
 
    // Traverse the Map
    for (int i = 0; i < 10; i++) {
 
      // If frequency
      // of digit exceeds 1
      if (cnt[i] > 1)
        System.out.print(i + " ");
    }
 
    System.out.println();
  }
 
  // Driver Code
  public static void main(String[] args)
  {
 
    String N = "45244336543";
 
    // Function call to print
    // repeating digits in N
    printDup(N);
  }
}
 
// This code is contributed by Kingash.

Python3

# Python implementation
# of the above approach
 
# Function to print repeating
# digits present in the number N
def printDup(N):
 
    # Stores the count of
    # unique digits
    res = 0
 
    # Set count of all digits to 0
    cnt = [0] * 10
 
    # Convert integer to
    # equivalent string
    string = str(N)
 
    # Traversing the string
    for i in string:
 
        # Convert the character
        # to equivalent integer
        digit = int(i)
 
        # Increase the count of digit
        cnt[digit] += 1
 
    # Traverse the Map
    for i in range(10):
 
        # If frequency
        # of digit is 1
        if (cnt[i] > 1):
 
            # If count exceeds 1
            print(i, end=" ")
 
 
# Driver Code
 
N = 45244336543
 
# Function call to print
# repeating digits in N
printDup(N)

C#

// C# program to implement
// the above approach
using System;
 
class GFG
{
 
  // Function to print repeating
  // digits present in the number N
  static void printDup(string N)
  {
     
    // Stores the count of
    // unique digits
 
    // Map to store frequency
    // of each digit
    int[] cnt = new int[10];
 
    // Traversing the string
    for (int i = 0; i < N.Length; i++) {
 
      // Convert the character
      // to equivalent integer
      int digit = (N[i] - '0');
 
      // Increase the count of digit
      cnt[digit] += 1;
    }
 
    // Traverse the Map
    for (int i = 0; i < 10; i++) {
 
      // If frequency
      // of digit exceeds 1
      if (cnt[i] > 1)
        Console.Write(i + " ");
    }
 
    Console.WriteLine();
  }
 
  // Driver code
  public static void Main()
  {
 
    string N = "45244336543";
 
    // Function call to print
    // repeating digits in N
    printDup(N);
  }
}
 
// This code is contributed by code_hunt.

Javascript

<script>
// Javascript program for the above approach
 
// Function to print repeating
// digits present in the number N
function printDup(N)
{
  // Stores the count of
  // unique digits
  var res = 0;
 
  // Map to store frequency
  // of each digit
  var cnt = Array(10);
 
  // Set count of all digits to 0
  for (var i = 0; i < 10; i++)
    cnt[i] = 0;
 
  // Traversing the string
  for (var i = 0; i < N.length; i++) {
 
    // Convert the character
    // to equivalent integer
    var digit = (N[i] - '0');
 
    // Increase the count of digit
    cnt[digit] += 1;
  }
 
  // Traverse the Map
  for (var i = 0; i < 10; i++) {
 
    // If frequency
    // of digit exceeds 1
    if (cnt[i] > 1)
      document.write( i + " ");
  }
 
  document.write("<br>");
}
 
// Driver Code
var N = "45244336543";
// Function call to print
// repeating digits in N
printDup(N);
 
</script>
Producción: 

3 4 5

 

Complejidad de tiempo: O(log 10 N)
Espacio auxiliar: O(1)

Enfoque 2: Usando count().
Usando count() intentamos encontrar el carácter cuya ocurrencia es más de una vez, almacenarlo en una estructura de datos y ordenarlo.

Python3

# Python implementation
# of the above approach
 
#initializing number
N = 45244336543
x=[]
s=str(N)
for i in s:
    if(s.count(i)>1 and i not in x):
        x.append(i)
x.sort()
print(' '.join(x))
Producción

3 4 5

Publicación traducida automáticamente

Artículo escrito por vikkycirus y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *