sfondo
Questa è la prima parte di un campo da golf a 3 buche sull'elaborazione del testo. L'idea di over-arching è che se prendi un testo di input e lo installi attraverso le soluzioni a tutte e tre le sfide (con una piccola quantità di codice di colla), sputerà un paragrafo formattato magnificamente. In questa prima sfida, il tuo compito è sillabare un pezzo di testo usando determinati schemi di sillabazione.
Ingresso
Il tuo programma dovrà prendere due input di stringa: un pezzo di testo e un elenco di schemi di sillabazione. Il primo input è semplicemente una stringa non vuota di caratteri e spazi ASCII stampabili; non conterrà interruzioni di linea o tilde ~
. Il secondo input è un elenco di parole delimitate da virgole, che consistono in sillabe delimitate da tilde di caratteri ASCII minuscoli. Un esempio è ex~cel~lent,pro~gram~ming,abil~i~ties
.
Produzione
Il programma modificherà il primo input nel modo seguente. Qualsiasi parola (sottostringa massima di caratteri alfabetici ASCII) la cui versione minuscola trattata si trova nel secondo input deve essere sostituita da quella versione trattata, ma il suo caso deve essere preservato. Con l'elenco di esempio sopra riportato, se il testo contiene la parola Excellent
, deve essere sostituito da Ex~cel~lent
; tuttavia, nonExcellently
deve essere modificato. L'output deve essere questa stringa modificata.
Regole dettagliate e punteggio
Puoi assumere quanto segue sugli input:
- Il primo input non contiene tilde né spazi iniziali, finali o ripetuti. Non è vuoto
- Il secondo input contiene almeno una parola e ogni parola in essa contiene almeno due sillabe. Ogni sillaba non è vuota.
- Il secondo input non contiene una parola che si presenta come sillaba in un'altra parola.
Se lo si desidera, è possibile modificare l'ordine dei due input e, facoltativamente, aggiungere una nuova riga finale all'output.
È possibile scrivere una funzione o un programma completo. Vince il conteggio di byte più basso e non sono consentite scappatoie standard.
Casi test
Questi sono elencati nel 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
Qualsiasi possibile errore di sillabazione in questa sfida è dovuto a questo strumento di sillabazione .
#programming!
sarà comunque influenzato da un secondo input di pro~gram~ming
)? Anche i numeri non contano (ovvero sono ammessi solo caratteri alfabetici)?