MATL , 20 ไบต์
TiodgvYsG8XQ!"@gto?P
อินพุตเป็นอาร์เรย์คอลัมน์โดยใช้;
เป็นตัวคั่น
ลองออนไลน์!
คำอธิบาย
[1;2;3;5;7;4;6;7;9]
พิจารณาเป็นตัวอย่างอาร์เรย์การป้อนข้อมูล ส่วนแรกของรหัสที่Tiodgv
แปลงนี้ในอาร์เรย์[1;1;1;0;0;1;0;1;0]
ที่1
บ่งบอกถึงการเปลี่ยนแปลงของความเท่าเทียมกัน (โดยเฉพาะอย่างยิ่งรหัสที่ได้รับความเท่าเทียมกันของแต่ละรายการของอาร์เรย์อินพุตคำนวณความแตกต่างติดต่อกันแปลงค่าที่ไม่ใช่ศูนย์เพื่อ1
และ prepends a 1
)
แล้วYs
คำนวณผลรวมสะสม[1;2;3;3;3;4;4;5;5]
ให้ แต่ละตัวเลขเหล่านี้จะถูกนำมาใช้เป็นฉลากตามที่องค์ประกอบของการป้อนข้อมูลจะถูกจัดกลุ่ม สิ่งนี้ทำได้โดยการG8XQ!
แยกอาร์เรย์อินพุตเข้าในเซลล์อาร์เรย์ที่มีกลุ่ม {[1] [2] [3;5;7] [4;6] [7;9]}
ในกรณีนี้มันจะช่วยให้
ส่วนที่เหลือของรหัสiterates ( "
) ในอาร์เรย์เซลล์ @g
แต่ละอาร์เรย์ส่วนประกอบที่เป็นตัวเลขจะถูกผลักด้วย to
ทำให้สำเนาและคำนวณความเท่าเทียมกันของ ถ้า ( ?
) ผลลัพธ์เป็นจริงเช่นเนื้อหาของอาร์เรย์เป็นเลขคี่อาร์เรย์จะพลิก ( P
)
สแต็กจะแสดงโดยนัยในตอนท้าย แต่ละอาร์เรย์แนวตั้งที่เป็นตัวเลขจะปรากฏขึ้นโดยแสดงรายการตัวเลขคั่นด้วยบรรทัดใหม่