Hintergrund
Dies ist der erste Teil eines 3-Loch-Golfplatzes zur Textverarbeitung. Die übergreifende Idee ist, dass, wenn Sie einen Eingabetext nehmen und ihn durch die Lösungen für alle drei Herausforderungen leiten (mit einer kleinen Menge Klebercode), ein schön formatierter Absatz ausgegeben wird. In dieser ersten Herausforderung besteht Ihre Aufgabe darin, einen Textabschnitt unter Verwendung vorgegebener Trennmuster zu trennen.
Eingang
Ihr Programm muss zwei Zeichenfolgen-Eingaben annehmen: eine Textzeile und eine Liste der Silbentrennungsmuster. Die erste Eingabe ist einfach eine nicht leere Zeichenfolge aus druckbaren ASCII-Zeichen und Leerzeichen. Es enthält keine Zeilenumbrüche oder Tildes ~
. Die zweite Eingabe ist eine durch Kommas getrennte Liste von Wörtern, die aus durch Tilden getrennten Silben von ASCII-Kleinbuchstaben bestehen. Ein Beispiel ist ex~cel~lent,pro~gram~ming,abil~i~ties
.
Ausgabe
Ihr Programm ändert die erste Eingabe folgendermaßen. Jedes Wort (maximaler Teilstring aus alphabetischen ASCII-Zeichen), dessen mit Bindestrich versehene Kleinbuchstaben in der zweiten Eingabe enthalten sind, ist durch diese mit Bindestrich versehene Version zu ersetzen, wobei die Groß- und Kleinschreibung beizubehalten ist. Mit der obigen Beispielliste, wenn der Text das Wort enthält Excellent
, wird es ersetzt durch Ex~cel~lent
; jedoch Excellently
soll nicht verändert werden. Ihre Ausgabe soll diese modifizierte Zeichenfolge sein.
Detaillierte Regeln und Wertung
Zu den Eingaben können Sie folgendes annehmen:
- Die erste Eingabe enthält keine Tilden und keine führenden, nachfolgenden oder wiederholten Leerzeichen. Es ist nicht leer.
- Die zweite Eingabe enthält mindestens ein Wort und jedes Wort darin enthält mindestens zwei Silben. Jede Silbe ist nicht leer.
- Die zweite Eingabe enthält kein Wort, das als Silbe in einem anderen Wort vorkommt.
Bei Bedarf können Sie die Reihenfolge der beiden Eingaben ändern und der Ausgabe optional eine abschließende Newline hinzufügen.
Sie können eine Funktion oder ein vollständiges Programm schreiben. Die niedrigste Byteanzahl gewinnt, und Standardlücken sind nicht zulässig.
Testfälle
Diese sind im Format aufgelistet 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
Jeder mögliche Silbentrennungsfehler bei dieser Abfrage ist auf dieses Silbentrennungswerkzeug zurückzuführen .
#programming!
noch von einer zweiten Eingabe von beeinflusst pro~gram~ming
)? Zählen auch Zahlen nicht (dh sind nur alphabetische Zeichen erlaubt)?