Der Code auf dieser Site wird schnell aufgebraucht. Wir müssen in erneuerbare Saiten investieren. Sie müssen also ein Programm schreiben, das einen String aufnimmt und in eine Windmühle umwandelt.
Die Herausforderung
Nehmen wir als Beispiel eine einfache Windmühlenschnur. Nimm die Schnur abc
. In diesem Fall ist der Drehpunkt das zentrale Zeichen b
. Da die Zeichenfolge 3 Zeichen lang ist, ist jede Ausgabe genau drei Zeilen groß und drei Zeichen breit. Hier ist Ihre Ausgabe in Schritt 1. (Beachten Sie das Leerzeichen)
ABC
Um den nächsten Schritt zu erreichen, drehen Sie jedes Zeichen im Uhrzeigersinn um den Drehpunkt. Hier ist Schritt 2:
ein b c
Hier sind die Schritte 3-8:
ein b c
ein b c
cba
c b ein
c b ein
c b ein
Beim neunten Schritt schließt sich der Kreis zur ursprünglichen Zeichenfolge:
ABC
Beachten Sie, dass b
die ganze Zeit an der gleichen Stelle geblieben ist. Dies liegt daran, dass b
es sich um das Pivot-Zeichen handelt. Sie müssen ein Programm oder eine Funktion schreiben, die eine Zeichenfolge als Eingabe verwendet und diese Sequenz wiederholt ausgibt, bis das Programm geschlossen wird.
Klarstellungen
Alle eingegebenen Zeichenfolgen haben eine ungerade Anzahl von Zeichen. (Damit jede Windmühle einen Drehpunkt hat)
Um die Herausforderung einfach zu halten, enthalten alle Zeichenfolgen nur Groß- und Kleinbuchstaben.
Die Ausgabe muss
len(input_string)
Zeichen breit und hoch sein.Es spielt keine Rolle, mit welchem Schritt der Sequenz Sie beginnen, solange Sie sich weiter drehen und für immer eine Schleife bilden.
Mehr Test IO:
Da der Beitrag schon ziemlich lang ist, hier ein Link zur Ausgabe für "windmill":
Randnotiz:
Da dies eine Windmühle sein soll, wäre es fantastisch, wenn Sie einen Boilerplate-Code einfügen, um ihn mit einer kleinen Zeitverzögerung oder einer Benutzereingabe zwischen den einzelnen Schritten zu animieren. Da einige Sprachen jedoch keine integrierten Zeitfunktionen haben, ist dies nicht zwingend erforderlich. Der konkurrierende Teil Ihrer Einreichung kann die Sequenz einfach so schnell wie möglich ausdrucken.