ในการเล่น absurdist Rosencrantz และ Guildenstern นั้นตายไปแล้วตัวละครหลักทั้งสองRosencrantzและGuildenstern (หรือพวกเขา?) มักจะผสมกันอยู่เสมอว่าใครคือใคร - หรือบางส่วนของร่างกายของตัวเอง - เพราะขาดการรับรู้ ตัวตนของแต่ละบุคคล มันจะไม่ไร้สาระหรือไม่ถ้าพวกเขาสับรอบชื่อของพวกเขา?
งานของคุณมันจะเขียนฟังก์ชั่นซึ่งจะใช้เวลาในสตริงของที่แม้ความยาว (และโดยการออกแบบหลาย 4) ที่มากกว่า 7 ตัวอักษรแยกมันและสับ
การแยกจะต้องเป็นดังนี้ : สตริงจะเป็นรูปแบบที่"abscd"มีการทำหน้าที่เป็นตัวคั่น ส่วนแรกและตัวคั่น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:
- ช่องโหว่มาตรฐานเป็นสิ่งต้องห้าม
- คำตอบที่ยอมรับได้: ฟังก์ชันที่รับอินพุตผ่านหนึ่งสตริงอินพุตและส่งคืนสตริงเอาต์พุตหนึ่งสตริง
- หากสายป้อนไม่ตรงกับความต้องการที่ให้ไว้ข้างต้นรหัสของคุณต้องข้อผิดพลาดออก (ไม่สำคัญว่าสิ่งที่ชนิดของ
ExceptionหรือError) - นี่คือ
code-golfดังนั้นคำตอบที่สั้นที่สุด (ถูกต้อง) (ในแต่ละภาษา) ชนะ! - คะแนนโบนัสสำหรับหนึ่งซับ :-) (ไม่ใช่จริง ๆ แค่คะแนนเจ๋ง ๆ )