En una venta de garaje encuentras una hermosa máquina de escribir vintage a un precio de ganga. Emocionado, corres a casa, pones una hoja de papel y te pones a escribir. Sin embargo, tu emoción se desvanece cuando examinas el resultado: ¡todas las palabras salen distorsionadas! Por ejemplo, imprime «stop» en lugar de «post» y «least» en lugar de «stale». Lo intentas de nuevo con cuidado, pero ahora imprime «spot» y «slate». Después de experimentar un poco, descubres que hay un retraso aleatorio antes de que se imprima cada letra, lo que altera el orden. ¡Ahora entiendes por qué la vendieron por tan poco dinero!
Te das cuenta de que esta peculiaridad te permite generar anagramas, que son palabras formadas al reordenar las letras de otra palabra. Feliz con tu hallazgo, pasas el resto del día generando cientos de anagramas.
Tu tarea es, dada una palabra objetivo y un conjunto de palabras candidatas, encontrar el subconjunto de candidatas que son anagramas de la objetivo.
Un anagrama es una reordenación de letras para formar una palabra nueva: por ejemplo, "owns" es un anagrama de "snow".
Una palabra no es su propio anagrama: por ejemplo, "stop" no es un anagrama de "stop".
La palabra objetivo y las candidatas son palabras de uno o más caracteres alfabéticos ASCII (A-Z y a-z).
Los caracteres en minúscula y en mayúscula son equivalentes: por ejemplo, "PoTS" es un anagrama de "sTOp", pero StoP no es un anagrama de sTOp.
El conjunto de anagramas es el subconjunto del conjunto de candidatas que son anagramas de la palabra objetivo (en cualquier orden).
Las palabras del conjunto de anagramas deben conservar el mismo uso de mayúsculas y minúsculas que en el conjunto de candidatas.
Dada la palabra objetivo "stone" y las candidatas "stone", "tones", "banana", "tons", "notes", "Seton", el conjunto de anagramas es "tones", "notes", "Seton".
Debes devolver los anagramas en el mismo orden en que aparecen en las palabras candidatas.
Regístrate en Exercism para aprender y dominar Delphi Pascal con 76 ejercicios y mentoría humana real, todo gratis.