← Volver a articulos
Problemas Tipo Entrevista (Big Tech)

Problema real Tesla: Maximum Number of Balloons

Estrategia óptima para entrevistas Big Tech

13 de octubre de 2025·Deep Skill, Jean Pierre Mandujano
Problema real Tesla: Maximum Number of Balloons

Maximum Number of Balloons

Introducción

Analizamos un problema representativo de entrevistas técnicas para posiciones de software engineer en grandes tecnológicas: Maximum Number of Balloons. Es un reto clásico para evaluar razonamiento lógico y manipulación eficiente de cadenas (strings). En este artículo lo descomponemos desde cero: enunciado, errores comunes y construcción de la solución óptima paso a paso.

Enunciado del problema

Dado un string text, puedes utilizar cada carácter a lo sumo una vez para formar la palabra "balloon" todas las veces que sea posible. Tu objetivo es determinar cuántas veces puedes formar la palabra "balloon" con las letras presentes en text.

Ejemplo 1

Entrada: text = "nlaebolko"

Salida: 1

Se puede formar “balloon” una vez.

Ejemplo 2

Entrada: text = "loonbalxballpoon"

Salida: 2

Se puede formar “balloon” dos veces.

Ejemplo 3

Entrada: text = "leetcode"

Salida: 0

Faltan varias letras para formar “balloon”.

Observaciones clave

Para formar balloon necesitas estas letras y cantidades:

b × 1 a × 1 l × 2 o × 2 n × 1
Idea clave: la respuesta es min count('b'), count('a'), count('l') // 2, count('o') // 2, count('n'). Se divide por 2 en l y o porque cada “balloon” usa dos de cada una.

Paso a paso: solución óptima

  1. Contar frecuencias. Calcula cuántas veces aparece cada letra {b, a, l, o, n}.
  2. Dividir por la cantidad requerida. Para l y o divide entre 2; para b, a, n es entre 1.
  3. Tomar el mínimo. El resultado es el mínimo de esos cocientes.

Implementación en Python

from collections import Counter

def maxNumberOfBalloons(text: str) -> int:
    counts = Counter(text)
    return min(
        counts.get('b', 0) // 1,
        counts.get('a', 0) // 1,
        counts.get('l', 0) // 2,
        counts.get('o', 0) // 2,
        counts.get('n', 0) // 1
    )

Implementación en JavaScript

function maxNumberOfBalloons(text) {
  const counts = { b: 0, a: 0, l: 0, o: 0, n: 0 };
  for (const ch of text) {
    if (ch in counts) counts[ch]++;
  }
  return Math.min(
    counts.b,
    counts.a,
    Math.floor(counts.l / 2),
    Math.floor(counts.o / 2),
    counts.n
  );
}

Complejidad

  • Tiempo: O(n), un recorrido del string.
  • Espacio: O(1), letras acotadas.

Casos de prueba adicionales

Entrada Salida Explicación
"balloonballoon"2Se puede formar exactamente dos veces
"bbaallllooooonnn"2Limitan b, a y n.
""0Cadena vacía.
"balon"0Faltan letras repetidas
"ballooon"1Sobra una o pero falta una l.
BENEFICIO EXCLUSIVO

Obtén un 50% de descuento en tu primera compra de cursos de algoritmos .

SKILL-ALGO-50


Comentarios

Deja tu comentario

Inicia sesión para comentar

Cargando comentarios...