Défi
Écrivez un programme ou une fonction qui accepte une chaîne s
et un entier n
comme paramètres. Votre programme doit imprimer (ou renvoyer) la chaîne une fois transformée comme suit:
En commençant en haut à gauche et en descendant vers la droite, écrivez s
comme une vague de hauteur n
. Ensuite, de haut en bas, combinez chaque ligne sous forme de chaîne (sans espaces).
Exemple
Compte tenu de la chaîne "WATERMELON" et d'une hauteur de 3:
La vague devrait ressembler à ceci:
W R O
A E M L N
T E
Ensuite, combinez les rangées de haut en bas:
WRO
AEMLN
TE
Donc, votre programme devrait retourner la chaîne "WROAEMLNTE"
De même, "WATERMELON" de hauteur 4 devrait produire la vague suivante:
W E
A M L
T R O
E N
Votre programme devrait alors renvoyer la chaîne "WEAMLTROEN"
Règles
Contribution
L'entrée peut être prise dans n'importe quel format raisonnable. La chaîne peut être dans tous les cas que vous préférez. Vous pouvez supposer que0 < n <= s.length
Sortie
La sortie ne doit être constituée que de la chaîne transformée (qu'elle soit retournée ou imprimée sur STDOUT), plus tous les retours à la ligne de fin.
Notation
C'est le golf de code , donc la réponse la plus courte en octets gagne! Les échappatoires standard ne sont pas autorisées.
Cas de test
Input Output
programmingpuzzles, 5 -> piermnlsomgzgapzru
codegolf, 3 -> cgoeofdl
elephant, 4 -> enlatehp
1234567, 3 -> 1524637
qwertyuiop, 1 -> qwertyuiop
n > 0
, mais n=1
c'est un cas valide. Je vais mettre à jour la question maintenant.
n
> 1? Veuillez clarifier et sinon ajouter un cas de test