Programa Java para imprimir todos los caracteres duplicados en una string

Dada una string, la tarea es escribir un programa Java para imprimir todos los caracteres duplicados con su frecuencia

Ejemplo: 

Entrada: str = “geeksforgeeks”
Salida:
s : 2
e : 4
g : 2
k : 2

Entrada: str = “java”
Salida:
a : 2

Enfoque: La idea es hacer hashing usando HashMap .

  • Crea un hashMap de tipo {char, int} .
  • Atraviese la string, verifique si hashMap ya contiene el carácter atravesado o no.
  • Si está presente, incremente el conteo o inserte el carácter en el hashmap con frecuencia = 1.
  • Ahora recorra el hashmap y busque los caracteres con una frecuencia superior a 1. Imprima estos caracteres con sus respectivas frecuencias.

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

Java

// Java program for the above approach
import java.util.*;
class GFG {
  
    // Function to print all duplicate
    // characters in string using HashMap
    public static void
    countDuplicateCharacters(String str)
    {
  
        // Creating a HashMap containing char
        // as a key and occurrences as a value
        Map<Character, Integer> map
            = new HashMap<Character, Integer>();
  
        // Converting given string into
        // a char array
        char[] charArray = str.toCharArray();
  
        // Checking each character
        // of charArray
        for (char c : charArray) {
  
            if (map.containsKey(c)) {
  
                // If character is present
                // in map incrementing it's
                // count by 1
                map.put(c, map.get(c) + 1);
            }
            else {
  
                // If character is not present
                // in map putting this
                // character into map with
                // 1 as it's value.
                map.put(c, 1);
            }
        }
  
        // Traverse the HashMap, check
        // if the count of the character
        // is greater than 1 then print
        // the character and its frequency
        for (Map.Entry<Character, Integer> entry :
             map.entrySet()) {
  
            if (entry.getValue() > 1) {
                System.out.println(entry.getKey()
                                   + " : "
                                   + entry.getValue());
            }
        }
    }
  
    // Driver Code
    public static void
    main(String args[])
    {
        // Given String str
        String str = "geeksforgeeks";
  
        // Function Call
        countDuplicateCharacters(str);
    }
}
Producción:

s : 2
e : 4
g : 2
k : 2

Complejidad temporal: O(N)
Espacio auxiliar: O(1)

Publicación traducida automáticamente

Artículo escrito por prashant_srivastava 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 *