Poster Sandbox ici .
Créez une fonction ou un programme qui "Springifie" une chaîne.
- L'entrée sera une chaîne dans Stdin, ou l'alternative la plus proche
- L'entrée ne contiendra que de l'ASCII imprimable et / ou des espaces
- La sortie sera vers Stdout, ou l'alternative la plus proche
- Les sauts de ligne et les espaces sont acceptables
Comment sprinter une chaîne
- Formatez la chaîne en autant de bobines de ressort ASCII que nécessaire
- Remplissez les bobines avec des espaces, jusqu'à la bobine la plus proche
- Lisez les personnages en suivant le printemps autour des bobines
Il s'agit d'une bobine à ressort ASCII:
#
# ####
# #
# ####
#
Où les #
s sont les caractères de la chaîne
Voici un exemple:
abcdefghijklmnopqrstuvwxyz
devient
a
b cdef
g h
i jklm
n
o
p qrst
u v
w xyz.
.
Où les .
s remplacent les espaces pour la visibilité.
Ensuite, la chaîne est relue, en suivant le ressort ASCII vers le bas, autour des boucles, en appuyant deux fois sur g
et u
:
1| a <-3
V b cdef
g h
4| i jklm
V n 2->
...
...donnant:
abgjklmhfedcginopuxyz vtsrquw
(avec un espace de fin)
Cas de test
(citations ajoutées pour mettre en évidence les espaces de fin - veuillez ignorer en termes d'E / S)
I: "abcdefghijklmnopqrstuvwxyz"
O: "abgjklmhfedcginopuxyz vtsrquw "
I: "!@#"
O: "!@ # "
I: ""
O: ""
I: "12345 67890"
O: "12690 7 54368 "
I: " "
O: " "
Notez que la longueur de sortie est toujours un multiple de 15, la longueur d'une bobine à ressort
Il s'agit de code-golf , donc la réponse la plus courte en octets l'emporte.