ท้าทาย
เขียนฟังก์ชั่นหรือโปรแกรมที่รับสายอินพุตดำเนินการสลับอย่างเฉพาะเจาะจงและคุ้นเคยอย่างมากกับตัวอักขระและส่งผลลัพธ์ออกมา
การสับที่ต้องการสามารถอธิบายได้โดยใช้อัลกอริทึมต่อไปนี้:
- ติดป้ายอักขระแต่ละตัวในอินพุตด้วยดัชนี 1 ฐาน
- เขียนอักขระหมายเลข 1 เป็นเอาต์พุต
- เริ่มต้นด้วยหมายเลขอักขระ 2 เขียนอักขระอื่น ๆ ไปยังเอาต์พุตตามลำดับยกเว้นอักขระ 2 เอง กล่าวอีกนัยหนึ่งเขียนอักขระ 4, 6, 8, 10 และอื่น ๆ เป็นเอาต์พุต
- เริ่มต้นด้วยหมายเลขอักขระถัดไป n ที่ยังไม่ได้เขียนเป็นเอาต์พุตเขียนอักขระทุกตัวที่ n ไปยังเอาต์พุตยกเว้นตัวอักษร n และยกเว้นอักขระอื่น ๆ (ตามป้ายกำกับตัวเลข) ที่คุณอาจเขียนไปยังเอาต์พุต
- ทำซ้ำขั้นตอนที่ 4 ตราบใดที่ยังคงเพิ่มอักขระใหม่ไปยังเอาต์พุต
- เขียนตัวอักษรที่เหลือเพื่อออกตามลำดับ
ตัวอย่าง
- ติดฉลากอักขระ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 SBEAUTYCORNER OLDDOCYAK
2. เขียนอักขระตัวแรกเพื่อส่งออก:
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27OLDDOCYAK 'SBEAUTYCORNER O
3. เขียนอักขระอื่น ๆ ที่เริ่มต้นด้วย 2 ยกเว้น 2
12 3456789101112131415161718192021222324252627OLDDOCY K'S BEUTYCORNERO โอ' EUYCRE
4. ตัวละครตัวถัดไปที่ยังไม่ได้เขียนคือตัวอักษรหมายเลข 3; เขียนทุกตัวอักษรตัวที่ 3 ที่ขึ้นต้นด้วย 3 แต่ไม่รวมตัวอักษร 3 และตัวอักษรใด ๆ ที่เขียนไปแล้ว
12 3456789101112131415161718192021222324252627OLDDOCYK'SBEUTYCORNEROOA 'EUYCRE YB R
5. ทำซ้ำขั้นตอนที่ 4 โดยใช้อักขระถัดไปตัวละคร 5
4. ตัวละครถัดไปที่ยังไม่ได้เขียนคือตัวอักษรหมายเลข 5; เขียนตัวละครทุกตัวที่ 5 ขึ้นต้นด้วย 5 แต่ไม่รวมตัวอักษร 5 และตัวอักษรใด ๆ ที่เขียนไปแล้ว (จำนวนนี้เป็นเพียงอักขระ 25)
12 3456789101112131415161718192021222324252627OLDDOCYK'SBEUTYCORNEROOA 'EUYCREYB R N
5. ตัวละครต่อไปคือ 7; แต่ 14, 21 ถูกเขียนไปแล้วดังนั้นจะไม่มีตัวอักษรออกมามากนักถ้าเราทำซ้ำขั้นตอนที่ 4 ดังนั้นเราจะทำกับ 5
6. เขียนอักขระที่เหลือตามลำดับ
12 3456789101112131415161718192021222324252627OLD DOCYK'SBEUTYCORNEROOA 'EUYCREYB RN LDDCKSATO
กฎระเบียบ
อินพุตและเอาต์พุตอาจผ่านอินพุต / เอาต์พุตมาตรฐานสตริงหรืออาร์เรย์อักขระ
หากอ่านเป็นอินพุตมาตรฐานคุณสามารถทำได้ตามความสะดวกสมมติว่ามีบรรทัดใหม่ต่อท้ายหรือว่าอินพุตทั้งหมดมีบรรทัด อักขระขึ้นบรรทัดใหม่ไม่เข้าร่วมในการสับเปลี่ยน
ผลลัพธ์ของคุณอาจมีการขึ้นบรรทัดใหม่หรือไม่ก็ได้ตามความสะดวกของคุณ
ช่องโหว่มาตรฐานไม่ได้รับอนุญาต
นี่คือการแข่งขันกอล์ฟรหัส รหัสที่เล็กที่สุดในหน่วยไบต์ชนะ
กรณีทดสอบ
123456789ABCDEF -> 1468ACE9F2357BD
OLD DOC YAK'S BEAUTY CORNER -> O O A' EUYCREYB RNLDDCKSATO
Blue boxes use a 2600hz tone to convince telephone switches that use in-band signalling that the caller is actually a telephone operator.
->
Bebxsuea20h oet ovnetlpoesice htuei-adsgaln httecle satal eehn prtre 0ncce ha nng aiuapootnt ihyon atallu o s 6z oi ehwstsnbilt lr clee.