Dans la pièce absurde Rosencrantz et Guildenstern are Dead , les deux personnages principaux Rosencrantz et Guildenstern (ou sont-ils?) Mélangent toujours lequel d'entre eux est qui - ou parfois lequel de leurs propres parties du corps est lequel - en raison d'un manque perçu de identité individuelle. Ne serait-il pas absurde qu'ils remuent même leurs noms?
Votre tâche consiste à écrire une fonction qui prend une chaîne de longueur paire (et par conception, un multiple de 4) supérieure à 7 caractères, la diviser et la mélanger.
Le fractionnement doit être le suivant : la chaîne sera de format "abscd", avec s agissant comme un caractère séparateur. La première section et le séparateur absseront la première moitié de la chaîne, tandis que la seconde moitié seracd
La durée de asera(string length / 4) - 1
La durée de bsera(string length / 4)
La durée de ssera1
La durée de csera(string length / 4) + 1
La durée de dsera(string length / 4) - 1
Cela peut être très déroutant, alors laissez-moi vous montrer quelques exemples
("a" + "bb" + "s" + "ccc" + "d").length //8
1 2 1 3 1
|-------4--------| |----4-----| <--- (4 is half of 8)
("rosen" + "crantz" + "&" + "guilden" + "stern").length //24
5 6 1 7 5
("foo" + "barr" + "?" + "barry" + "foo").length
3 4 1 5 3
Finalement:
Vous mélangez ensuite les pièces autour, en sortant adscb
ex. "rosencrantz&guildenstern" --> "rosenstern&guildencrantz"
"foobarr?barryfoo" --> "foofoo?barrybarr"
Rulez:
- Les échappatoires standard sont interdites
- Réponses acceptables: une fonction qui prend une entrée via une chaîne d'entrée et renvoie une chaîne de sortie
- Si la chaîne d'entrée ne correspond pas aux exigences fournies ci-dessus, votre code DOIT faire une erreur (peu importe le type de
ExceptionouError) - C'est
code-golf, donc la réponse la plus courte (valide) (dans chaque langue) gagne! - Points bonus pour un one-liner :-) (Pas vraiment, mais des points sympas)