In dieser Herausforderung erhalten Sie eine alphabetische Zeichenfolge als Eingabe. Wir definieren den "Anti-String" einer bestimmten Eingabe als String, wobei alle Buchstaben invertiert sind. Beispielsweise
AaBbbUy -> aAbBBuY
Sie sollten ein Programm schreiben, das eine Zeichenfolge als Eingabe verwendet und nach der längsten zusammenhängenden Teilzeichenfolge sucht, deren Anti-Zeichenfolge ebenfalls eine zusammenhängende Teilzeichenfolge ist. Die beiden Teilzeichenfolgen sollten sich nicht überlappen.
Als Beispiel, wenn Sie die Zeichenfolge erhalten haben
fAbbAcGfaBBagF
Die fettgedruckten Teile wären das längste String-Anti-String-Paar.
Ihr Programm sollte, sobald es das Paar gefunden hat, diese zu jeweils einem Zeichen zusammenfassen. Dies sollte durch Entfernen aller Zeichen außer dem ersten Zeichen jeder Teilzeichenfolge erreicht werden. Zum Beispiel die obige Zeichenfolge
fAbbAcGfaBBagF
würde werden
fAcGfagF
Ihr Programm sollte dann den Vorgang wiederholen, bis das längste String-Anti-String-Paar ein einzelnes Zeichen oder kürzer ist.
Wenn Sie beispielsweise mit derselben Zeichenfolge arbeiten, ist das neue Paar nach dem Zusammenbruch das längste
fAcGfagF
Also brechen wir die Saite wieder zusammen
fAcGag
Jetzt kann der String nicht mehr weiter reduziert werden, daher sollten wir ihn ausgeben.
Im Falle eines Gleichstands zwischen Kandidatenpaaren (Beispiel AvaVA
) können Sie entweder eine Reduzierung vornehmen ( AaA
oder AvV
aber nicht Aa
).
Dies ist Codegolf, daher werden die Antworten in Bytes bewertet, wobei weniger Bytes besser sind.
Testfälle
fAbbAcGfaBBagF -> fAcGag
AvaVA -> AaA / AvV
QQQQQQQ -> QQQQQQQ
fAbbAcQQQQaBBacqqqqA -> fAbcQBcq
gaq -> gaq
fAbbAcGfaBBagFaBBa -> fcGaBBag
Motivationen
Obwohl dieses Problem willkürlich erscheint, ist es tatsächlich ein Problem, auf das ich beim Erstellen von Code zur Verarbeitung grundlegender Polygone gestoßen bin. Dieser Prozess kann verwendet werden, um ein Grundpolygon auf ein kleineres n -gon zu reduzieren . Nachdem ich es ausprobiert hatte, dachte ich, dass es ein schönes kleines Golfspiel werden würde.
aaaAAAaaa -> aAaaa
?