Bei einer Wörterbuchdatei (eine Textdatei, die ein Wort oder eine Phrase in jeder Zeile enthält, mit möglicher Interpunktion, aber ohne Zahlen; Zeilen sind alphabetisch sortiert) müssen Sie jede Kombination von Wörtern ausgeben, bei der ein Buchstabe aus einem Wort entfernt werden kann, um ein anderes zu bilden. Der entfernte Buchstabe sollte in Klammern gesetzt werden.
Zum Beispiel die Eingabe
cat
cart
code
golf
ode
verify
versify
sollte eine Ausgabe von geben
ca(r)t
(c)ode
ver(s)ify
Mehrere Möglichkeiten, um dasselbe Paar zu erhalten, müssen nur einmal angezeigt werden. Sie können scra(p)pedoder ausgeben scrap(p)ed, aber nicht beide.
Die Ausgabe sollte alphabetisch nach dem längeren Eintrag sortiert sein .
mart
mar
mat
ma
sollte eine Ausgabe von haben
ma(r)
ma(t)
ma(r)t
mar(t)
und die beiden letzteren könnten in jeder Reihenfolge sein.
Die Wörterbuchdatei kann Großbuchstaben, Leerzeichen, Bindestriche oder Apostrophe enthalten. diese sollten ignoriert werden. Zum Beispiel,
inlay
in-play
sollte produzieren in(p)lay. Ihre Ausgabe sollte alle im selben Fall sein. Zusätzliches Leerzeichen ist zulässig.
Die Eingabe kann STDIN oder aus einer Datei erfolgen. Es wird durch Zeilenumbrüche getrennt. Die Ausgabe kann der Rückgabewert einer Funktion oder von STDOUT sein (oder, falls gewünscht, in eine Datei geschrieben werden).
Das ist Code-Golf , also gewinnt der kürzeste Code in Bytes.
(Dies ist meine erste Herausforderung bei PPCG - lassen Sie mich wissen, wenn ich etwas falsch gemacht habe und ich werde es beheben.)
mart mar mat ma? Wäre esmar(t) ma(r)t ma(r) ma(t)?