不条理なプレイで、Rosencrantz and Guildenstern is Deadの2人の主人公RosencrantzとGuildenstern(または彼らですか?)個人のアイデンティティ。彼らが自分の名前をシャッフルしたとしても、ばかげたことではないでしょうか?
あなたの仕事は、7文字を超える偶数の長さ(設計では4の倍数)の文字列を取り、分割してシャッフルする関数を記述することです。
分割は次のようになります。文字列はformat "abscd"で、sは区切り文字として機能します。最初のセクションとセパレータabsは文字列の前半となり、後半は次のようになりますcd
長さはaになります(string length / 4) - 1
長さはbになります(string length / 4)
長さはsになります1
長さはcになります(string length / 4) + 1
長さはdになります(string length / 4) - 1
これは本当に混乱するかもしれませんので、いくつかの例を紹介します
("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
最後に:
次に、パーツをシャッフルして出力します adscb
例: "rosencrantz&guildenstern" --> "rosenstern&guildencrantz"
"foobarr?barryfoo" --> "foofoo?barrybarr"
Rulez:
- 標準の抜け穴は禁止されています
- 許容可能な回答:1つの入力文字列から入力を受け取り、1つの出力文字列を返す関数
- 入力文字列が上記の要件と一致しない場合は、コードでエラーが発生する必要があります(
Exceptionまたはの 種類は関係ありませんError)。 - これは
code-golfなので、(各言語で)最も短い(有効な)回答が優先されます。 - ワンライナーのボーナスポイント:-)(本当にそうではなく、ただクールなポイントです)