Ejercicio clásico de entrevistas
Una pregunta muy popular en entrevistas es encontrar el primer carácter no repetido de una cadena.
Por ejemplo, con la cadena:
"una manzana verde"
El primer carácter que no se repite es u.
Este ejercicio es excelente para practicar estructuras de datos y pensamiento lógico.
Para resolver el problema:
1, es la respuesta.import java.util.HashMap;
import java.util.Map;
public class BuscadorCaracter {
public static char primerNoRepetido(String texto) {
Map<Character, Integer> frecuencias = new HashMap<>();
// Primer paso: contar repeticiones
for (char c : texto.toCharArray()) {
int conteo = frecuencias.containsKey(c) ? frecuencias.get(c) : 0;
frecuencias.put(c, conteo + 1);
}
// Segundo paso: buscar el primero con frecuencia 1
for (char c : texto.toCharArray()) {
if (frecuencias.get(c) == 1)
return c;
}
// Si todos se repiten, devolvemos un carácter especial
return Character.MIN_VALUE;
}
}Map<Character, Integer> → tabla hash donde guardamos cuántas veces aparece cada carácter.containsKey(c) → revisa si el carácter ya fue visto.put(c, conteo + 1) → incrementa su frecuencia.🧾 Salida esperada:
👉 El primer carácter no repetido es: u
El HashMap permite buscar y actualizar valores en tiempo O(1). Por eso, este algoritmo tiene una complejidad total O(n) y resulta muy eficiente incluso para cadenas largas.
Character.MIN_VALUE.🧠 Este patrón —contar y luego identificar— aparece en muchos problemas de entrevistas.
Experimenta con otras cadenas:
💡 ¿Qué carácter devolverá cada una?