¡Aquí hay uno para todos ustedes, forjadores de palabras! Escriba un programa o función que tome una lista de palabras y produzca una lista de todas las posibles descomposiciones concatenantes para cada palabra. Por ejemplo:
(Nota: este es solo un pequeño muestreo con fines ilustrativos. La producción real es mucho más voluminosa).
afterglow = after + glow
afterglow = aft + erg + low
alienation = a + lie + nation
alienation = a + lien + at + i + on
alienation = a + lien + at + ion
alienation = alien + at + i + on
alienation = alien + at + ion
archer = arc + her
assassinate = ass + as + sin + ate
assassinate = ass + ass + in + ate
assassinate = assassin + ate
backpedalled = back + pedal + led
backpedalled = back + pedalled
backpedalled = backpedal + led
goatskin = go + at + skin
goatskin = goat + skin
goatskin = goats + kin
hospitable = ho + spit + able
temporally = tempo + rally
windowed = win + do + wed
windowed = wind + owed
weatherproof = we + at + her + pro + of
yeasty = ye + a + sty
Ok, ya tienes la idea. :-)
Reglas
- Use cualquier lenguaje de programación de su elección. El código más corto por conteo de caracteres para cada idioma gana. Esto significa que hay un ganador por cada idioma utilizado. El ganador general será simplemente el código más corto de todos los presentados.
- La lista de entrada puede ser un archivo de texto, entrada estándar o cualquier estructura de lista que proporcione su idioma (lista, matriz, diccionario, conjunto, etc.). Las palabras pueden ser inglés o cualquier otro idioma natural. (Si la lista es palabras en inglés, querrá ignorar o filtrar previamente los elementos de una sola letra, excepto "a" e "i". Del mismo modo, para otros idiomas, querrá ignorar los elementos sin sentido si aparecer en el archivo)
- La lista de salida puede ser un archivo de texto, salida estándar o cualquier estructura de lista que utilice su idioma.
- Puede usar cualquier diccionario de entrada que desee, pero probablemente desee usar uno que proporcione palabras sensatas en lugar de uno que proporcione demasiadas palabras oscuras, arcanas u obnubiladas. Este es el archivo que utilicé: la lista de Corncob de más de 58000 palabras en inglés
Preguntas
Este desafío se trata principalmente de escribir el código para realizar la tarea, pero también es divertido analizar los resultados ...
- ¿Qué subpalabras ocurren más comúnmente?
- ¿Qué palabra se puede descomponer en la mayor cantidad de subpalabras?
- ¿Qué palabra se puede descomponer de las maneras más diferentes?
- ¿Qué palabras se componen de las subpalabras más grandes?
- ¿Qué descomposiciones encontraste que fueron las más divertidas?
alienation
cuando corté y pegué eso. Corregido ahora. En términos de los demás, la lista anterior es solo una pequeña muestra. Mi programa de prueba generó decenas de miles de respuestas cuando se le dio la lista de Corncob.