0Pricing
Coding Interview Prep · Lección

Agrupe y clasifique con un mapa

Agrupe anagramas y elementos similares

Agrupe y clasifique con un mapa es una lección gratuita de Coding Interview Prep en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Coding Interview Prep, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Coding Interview Prep incluye 4 lecciones en total.

Agrupar es un patrón

Muchos problemas le piden agrupar elementos que tienen algo en común. Un mapa de claves a grupos convierte esto en un único recorrido limpio. 🗂️

Elija la clave de agrupación

El truco consiste en elegir una clave que sea idéntica para los elementos del mismo grupo. Si acierta, el resto resulta sencillo.

Crear grupos con defaultdict

Use defaultdict(list) para que cada clave nueva comience con un grupo vacío. Puede añadir elementos sin comprobar nunca si la clave existe.

from collections import defaultdict
buckets = defaultdict(list)

El bucle principal

Para cada elemento, calcule su clave y append el elemento al grupo de esa clave. Una línea por elemento agrupa todo.

for word in words:
    buckets[key_of(word)].append(word)

Agrupar anagramas

Los anagramas comparten sus letras ordenadas, por lo que la cadena ordenada es la clave de grupo perfecta. Ordene una vez y después agrupe según ella.

k = ''.join(sorted(word))
buckets[k].append(word)

Claves de tipo tupla para los recuentos

Cuando ordenar resulta lento, también puede usar como clave una tupla de recuentos de letras. Las tuplas son hashable, así que encajan perfectamente en un dict.

k = tuple(Counter(word)[c] for c in 'abcdefghijklmnopqrstuvwxyz')

Agrupar por una propiedad

Agrupe números por su resto, paridad o longitud cambiando únicamente la clave. El patrón sigue siendo idéntico en distintos problemas.

for n in nums:
    buckets[n % 3].append(n)

La idea de la ordenación por grupos

Cuando los valores caben en un intervalo pequeño, coloque cada uno en un grupo indexado y léalos en orden. Esto permite una ordenación casi lineal.

for x in nums:
    bucket[x].append(x)

Recopilar los resultados

Después de crear los grupos, la respuesta suele estar en los values del dict. Conviértalos en una lista cuando el juez necesite los grupos como tales.

result = list(buckets.values())

Contar por grupo

Si solo necesita los tamaños de los grupos, agrupe en un Counter o sume las longitudes al final. Elija según lo que realmente solicite el enunciado.

sizes = {k: len(v) for k, v in buckets.items()}

Por qué gana el mapeo

Agrupar con un mapa requiere O(n) en lugar de comparar cada par. La clave hasheada realiza el trabajo de encontrar las coincidencias.

Comprobación rápida

Quiere agrupar palabras para que los anagramas queden en el mismo grupo.

Repaso

Agrupe asociando la clave de cada elemento con un grupo de defaultdict en un único recorrido O(n). Elija bien la clave y los problemas de agrupación resultarán mucho más sencillos. 🚀

Preguntas frecuentes

¿La lección «Agrupe y clasifique con un mapa» es gratis?

Sí — el texto completo de «Agrupe y clasifique con un mapa» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Coding Interview Prep, actualiza a CoddyKit PRO. El curso de Coding Interview Prep incluye 4 lecciones en total.

¿Qué aprenderé en «Agrupe y clasifique con un mapa»?

Agrupe anagramas y elementos similares Practicas Coding Interview Prep con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Coding Interview Prep?

No se requiere experiencia previa. Coding Interview Prep en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.

¿Cuánto tiempo toma la lección «Agrupe y clasifique con un mapa»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Coding Interview Prep?

Sí. Cada lección de Coding Interview Prep incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Sets para pertenencia y eliminación de duplicados
  2. Diccionarios como tablas de consulta
  3. Counter y defaultdict en acción
  4. Agrupe y clasifique con un mapa
← Volver a Coding Interview Prep