Saltar al contenido

Las fichas del atril

Enunciado

Queda medio minuto en el reloj de arena. Keoni mira las fichas de su atril y repasa las palabras que se sabe: antes de mover quiere contar cuántas podría poner en el tablero con lo que tiene.

Escribe una función que reciba fichas, un texto de letras minúsculas con una letra por ficha, y palabras, una lista de textos en minúsculas (los dos pueden venir vacíos). Una palabra se puede armar si ninguna de sus letras aparece en ella más veces que en fichas, porque cada ficha se usa una sola vez. Cada palabra se revisa sola, con el atril completo: las fichas no se gastan de una palabra a otra. La palabra vacía siempre se puede armar, y si una palabra viene repetida en la lista, cuenta cada vez.

Regresa, como entero, cuántas palabras de la lista se pueden armar.

Con "gaakll" y ["gak", "lll", "kala", "aag"]: "gak" pide una g, una a y una k, y las hay; "kala" pide dos a, una k y una l, y también alcanzan; "aag" pide dos a y una g, y alcanzan; "lll" pide tres l y solo hay dos. Se pueden armar tres, así que regresa 3.

Ejemplos

  • El ejemplo

    "gaakll", ["gak", "lll", "kala", "aag"] → 3

  • Justo las fichas que pide

    "aab", ["aab", "aaab", "baa"] → 2

  • Una palabra repetida cuenta dos veces

    "casa", ["saca", "saca", "caza"] → 2

  • Atril vacío

    "", ["", "a"] → 1

  • No se sabe ninguna palabra

    "abc", [] → 0

Además de estas, el reto tiene pruebas ocultas que se revelan al enviar tu solución.

Empiezas con esto

Python

def cuantas_armo(fichas, palabras):
    pass

JavaScript

function cuantasArmo(fichas, palabras) {
}
Resolver este reto

Se abre en el navegador, con el editor y las pruebas. Este reto es del plan completo; los de O(1) y O(log n) son gratis.

Más retos de O(n²)

Ver todos los retos →