แรงบันดาลใจจากสิ่งนี้
ในความท้าทายที่เชื่อมโยงเราจะขอให้เพิ่มองค์ประกอบของต้นฉบับและสิ่งที่ตรงกันข้ามของอาร์เรย์อินพุต ในความท้าทายนี้เราจะทำให้มันยากขึ้นเล็กน้อยโดยการแนะนำการดำเนินการทางคณิตศาสตร์ขั้นพื้นฐานอื่น ๆ
รับอาร์เรย์ของจำนวนเต็มวนไปเรื่อย ๆ โดย+, *, -, //, %, ^
ที่การ//
หารจำนวนเต็มและ^
เลขชี้กำลังขณะที่ใช้มันกับด้านหลังของอาร์เรย์ หรือกล่าวอีกนัยหนึ่งให้ใช้หนึ่งในฟังก์ชั่นด้านบนกับแต่ละองค์ประกอบของอาเรย์โดยอาร์กิวเมนต์ที่สองนั้นเป็นสิ่งที่ตรงกันข้ามกับอาเรย์ สิ่งนี้อาจยังคงสับสนดังนั้นให้ลองทำตามตัวอย่าง
Input: [1, 2, 3, 4, 5, 6, 7, 8, 9]
Reverse: [9, 8, 7, 6, 5, 4, 3, 2, 1]
[ 1, 2, 3, 4, 5, 6, 7, 8, 9]
Operand: + * - / % ^ + * -
[ 9, 8, 7, 6, 5, 4, 3, 2, 1]
Result: [10, 16, -4, 0, 0, 1296, 10, 16, 8]
ดังนั้นผลลัพธ์สำหรับ[1, 2, 3, 4, 5, 6, 7, 8, 9]
จะเป็น[10, 16, -4, 0, 0, 1296, 10, 16, 8]
เพื่อครอบคลุมกรณีมุมการป้อนข้อมูลจะไม่มีวันเป็น 0 แต่อาจมีจำนวนเต็มอื่น ๆ ในช่วงตั้งแต่อนันต์ลบจนถึงอินฟินิตี้บวก คุณสามารถรับอินพุตเป็นรายการสตริงที่แสดงถึงตัวเลขหากคุณต้องการ
กรณีทดสอบ
input => output
[1, 2, 3, 4, 5, 6, 7, 8, 9] => [10, 16, -4, 0, 0, 1296, 10, 16, 8]
[5, 3, 6, 1, 1] => [6, 3, 0, 0, 1]
[2, 1, 8] => [10, 1, 6]
[11, 4, -17, 15, 2, 361, 5, 28] => [39, 20, -378, 7, 2, 3.32948887119979e-44, 9, 308]
นี่เป็นรหัสสำหรับนักกอล์ฟที่มีรหัสสั้นที่สุด (เป็นไบต์)!