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 : 2Entrada: 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