8
วรรณพันธ์
Fannkuchเป็นโปรแกรมมาตรฐานคลาสสิก ชื่อนี้มาจากภาษาเยอรมัน "Pfannkuchen" - แพนเค้ก - สำหรับความคล้ายคลึงของอัลกอริทึมในการพลิกกองแพนเค้ก ลำดับหมายเลข Fannkuch ถูกสร้างขึ้นดังนี้: ใช้การเรียงสับเปลี่ยนของ {1 ..... n} ตัวอย่างเช่น: {4,2,1,5,3} นำองค์ประกอบแรกมาที่นี่ 4 และกลับลำดับขององค์ประกอบ 4 รายการแรก: {5,1,2,4,3} ทำซ้ำจนกว่าองค์ประกอบแรกจะเป็น 1 ดังนั้นการพลิกจะไม่เปลี่ยนแปลงอะไรอีก: {3,4,2,1,5}, {2,4,3,1,5}, {4,2,3 1,5}, {1,3,2,4,5} คุณต้องเขียนโปรแกรมหรือฟังก์ชั่นซึ่งคำนวณลำดับ Fannkuch เหมือนสำหรับสตริงของตัวอักษร แทนที่จะใช้ตัวเลขเพื่อระบุองค์ประกอบของรายการที่จะพลิกแต่ละครั้งตำแหน่งของตัวอักษรในตัวอักษรควรใช้ ตัวอย่างเช่นผู้นำcจะระบุว่าคุณควรกลับลำดับของ 3 องค์ประกอบแรกในขณะที่ผู้นำaชี้ให้เห็นว่าลำดับเสร็จสมบูรณ์ อินพุต อินพุตจะถูกจัดเตรียมเป็นสตริงผ่าน stdin หรือเป็นอาร์กิวเมนต์ของฟังก์ชัน สตริงจะมีตัวอักษรตัวพิมพ์เล็กระหว่าง 1 ถึง 26 ตัว สตริงจะไม่มีตัวอักษรที่มีดัชนีเทียบเท่าจะทำให้อัลกอริทึม Fannkuch พลิกองค์ประกอบมากกว่าที่มีอยู่ เอาท์พุต …