fundo
Esta é a primeira parte de um campo de golfe de 3 buracos no processamento de texto. A idéia geral é que, se você pegar um texto de entrada e direcioná-lo através das soluções para os três desafios (com uma pequena quantidade de código de cola), ele cuspirá um parágrafo lindamente formatado. Neste primeiro desafio, sua tarefa é hifenizar um pedaço de texto usando determinados padrões de hifenização.
Entrada
Seu programa deve receber duas entradas de sequência: um pedaço de texto e uma lista de padrões de hifenização. A primeira entrada é simplesmente uma sequência não vazia de caracteres e espaços ASCII imprimíveis; não conterá quebras de linha ou tildes ~
. A segunda entrada é uma lista de palavras delimitadas por vírgulas, que consistem em sílabas delimitadas por til de caracteres ASCII em minúsculas. Um exemplo é ex~cel~lent,pro~gram~ming,abil~i~ties
.
Resultado
Seu programa deve modificar a primeira entrada da seguinte maneira. Qualquer palavra (substring máximo de caracteres ASCII alfabéticos) cuja versão em minúscula hifenizada for encontrada na segunda entrada deve ser substituída por essa versão hifenizada, mas seu caso deve ser preservado. Com a lista de exemplos acima, se o texto contiver a palavra Excellent
, ela será substituída por Ex~cel~lent
; no entanto, nãoExcellently
deve ser modificado. Sua saída deve ser essa string modificada.
Regras detalhadas e pontuação
Você pode assumir o seguinte sobre as entradas:
- A primeira entrada não contém espaços, nem espaços iniciais, finais ou repetidos. Não está vazio.
- A segunda entrada contém pelo menos uma palavra e cada palavra contém pelo menos duas sílabas. Cada sílaba não está vazia.
- A segunda entrada não contém uma palavra que ocorra como uma sílaba em outra palavra.
Você pode alterar a ordem das duas entradas, se desejado, e, opcionalmente, adicionar uma nova linha à saída.
Você pode escrever uma função ou um programa completo. A contagem de bytes mais baixa vence e as brechas padrão não são permitidas.
Casos de teste
Eles estão listados no formato 1st input [newline] 2nd input [newline] output
.
Excellent programming abilities, you work excellently!
ex~cel~lent,pro~gram~ming,abil~i~ties
Ex~cel~lent pro~gram~ming abil~i~ties, you work excellently!
Superman (sometimes incorrectly spelled "Super-man") is super #&%@ing strong.
su~per,some~times,in~cor~rectly,spell~ing
Superman (some~times in~cor~rectly spelled "Su~per-man") is su~per #&%@ing strong.
IncONsISTent caPItalizATIon!
in~con~sis~tent,cap~i~tal~iza~tion
In~cON~sIS~Tent caP~I~tal~izA~TIon!
Such short words.
awk~ward
Such short words.
Digits123 are456cool789.
dig~its,dig~i~tal,are~cool
Dig~its123 are456cool789.
magic magic
ma~gic
ma~gic ma~gic
Qualquer possível erro de hifenização neste desafio é devido a essa ferramenta de hifenização .
#programming!
ainda será afetada por uma segunda entrada de pro~gram~ming
)? Os números também não contam (ou seja, são permitidos apenas caracteres alfabéticos)?