Le code de ce site s'épuise rapidement. Nous devons investir dans des chaînes renouvelables. Vous devez donc écrire un programme qui prend une chaîne et la convertit en moulin à vent.
Le défi
Prenons l'exemple d'une simple chaîne d'éoliennes. Prenez la ficelle abc
. Le pivot est le caractère central, dans ce cas b
. Étant donné que la chaîne est longue de 3 caractères, chaque sortie aura exactement trois lignes de haut et trois caractères de large. Voici votre sortie à l'étape 1. (Notez les espaces)
abc
Pour passer à l'étape suivante, faites pivoter chaque caractère autour du pivot dans le sens horaire. Voici l'étape 2:
une b c
Voici les étapes 3 à 8:
une b c
une b c
cba
c b une
c b une
c b une
Et à la neuvième étape, il fait le tour complet de la chaîne d'origine:
abc
Notez que le b
reste au même endroit tout le temps. C'est parce que b
c'est le caractère pivot. Vous devez écrire un programme ou une fonction qui prend une chaîne en entrée et imprime à plusieurs reprises cette séquence jusqu'à la fermeture du programme.
Clarifications
Toutes les chaînes d'entrée auront un nombre impair de caractères. (Pour que chaque moulin à vent ait un pivot)
Pour garder le défi simple, toutes les chaînes ne contiendront que des caractères alphabétiques en majuscules et minuscules.
La sortie doit être
len(input_string)
large et haute.Peu importe à quelle étape de la séquence vous commencez, tant que vous continuez à tourner et à boucler pour toujours.
Plus Test IO:
Puisque le message est déjà assez long, voici un lien vers la sortie pour "moulin à vent":
Sidenote:
Comme il s'agit d'un moulin à vent, ce serait génial si vous incluez du code passe-partout pour l'animer avec un petit délai ou une entrée utilisateur entre chaque étape. Cependant, comme certaines langues n'ont pas de temps intégré, ce n'est pas obligatoire. La partie concurrente de votre soumission peut simplement imprimer la séquence le plus rapidement possible.