รับการย้อนกลับของรายการภายในฟังก์ชันที่ส่งคืนรายการ [ซ้ำกัน]

ดังนั้นฉันจึงต้องได้รับองค์ประกอบภายใต้ดัชนีคี่ในทางกลับกัน

ฉันได้เขียนฟังก์ชันเพื่อรับองค์ประกอบดัชนีแปลก ๆ ให้ฉัน แต่ฉันไม่แน่ใจว่าจะทำให้พวกมันกลับมาย้อนกลับได้อย่างไร

ฉันต้องทำสิ่งนี้ในฟังก์ชันเดียวและต้องเป็นแบบเรียกซ้ำ


person Ashleyy    schedule 08.04.2015    source แหล่งที่มา
comment
คุณช่วยกรุณาแสดงรหัสของคุณได้ไหม? คุณลองทำอะไร? คุณจะใช้ภาษาโปรแกรมใด   -  person abarisone    schedule 08.04.2015


คำตอบ (1)


สิ่งที่คุณกำลังทำคือนำองค์ประกอบแรกมาต่อท้ายผลลัพธ์ที่เหลือ หากคุณทำอย่างอื่น คุณจะได้รายการที่กลับกัน ดังนั้น คุณสามารถรับรายการย้อนกลับได้โดยเพียงแค่สลับอาร์กิวเมนต์ของ append

หมายเหตุ: รหัสมีค่าใช้จ่าย O(n^2) และใช้สแต็กสำหรับการโทรซ้ำแต่ละครั้ง ดังนั้นจึงเป็นการดีกว่าถ้าทำให้เป็นแบบเรียกซ้ำส่วนท้าย จากนั้นการนำ Scheme ไปใช้ที่คุณกำลังใช้จะปรับให้เหมาะสมไม่ให้ใช้สแต็ก

person Takashi Kato    schedule 08.04.2015
comment
ฉันเพิ่งคิดออกก่อนหน้านี้และใช้วิธีแก้ปัญหาแบบเดียวกับที่คุณพูดถึงที่นี่! ขอบคุณสำหรับความช่วยเหลือของคุณ. คุณช่วยอธิบายรายละเอียดเล็กน้อยเกี่ยวกับ Tail Recursion ได้ไหม? อาจมีคำแนะนำรหัส? - person Ashleyy; 08.04.2015
comment
stackoverflow.com/questions/310974/ สิ่งนี้ คำถามมีคำตอบทั้งหมด :) - person Christophe De Troyer; 08.04.2015