W absurdalnej sztuce Rosencrantz i Guildenstern nie żyją , dwaj główni bohaterowie Rosencrantz i Guildenstern (czy są?) Zawsze mieszają, która z nich jest kim - a czasem która z ich części ciała jest - z powodu postrzeganego braku indywidualna tożsamość. Czy nie byłoby absurdalne, gdyby nawet tasowali się wokół swoich nazwisk?
Twoim zadaniem jest napisanie funkcji, która przyjmuje ciąg o parzystej długości (i z założenia wielokrotność 4), która jest większa niż 7 znaków, podziel ją i potasuj.
Podział będzie następujący : ciąg znaków będzie miał format "abscd", przy czym s będzie działało jak znak separatora. Pierwsza sekcja i separator absbędą pierwszą połową łańcucha, podczas gdy druga połowa będziecd
Długość abędzie(string length / 4) - 1
Długość bbędzie(string length / 4)
Długość sbędzie1
Długość cbędzie(string length / 4) + 1
Długość dbędzie(string length / 4) - 1
To może być bardzo mylące, dlatego pokażę kilka przykładów
("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
Wreszcie:
Następnie tasujesz części, generując adscb
dawny. "rosencrantz&guildenstern" --> "rosenstern&guildencrantz"
"foobarr?barryfoo" --> "foofoo?barrybarr"
Rulez:
- Standardowe luki są zabronione
- Dopuszczalne odpowiedzi: funkcja, która pobiera dane wejściowe przez jeden ciąg wejściowy i zwraca jeden ciąg wyjściowy
- Jeśli ciąg wejściowy nie spełnia powyższych wymagań, kod MUSI się nie powieść (nie ma znaczenia, jaki
ExceptionlubError) - To jest
code-golftak, że wygrywa najkrótsza (ważna) odpowiedź (w każdym języku)! - Punkty bonusowe za linijkę :-) (Niezupełnie, tylko fajne punkty)