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)
สแต็กจะแสดงโดยนัยในตอนท้าย แต่ละอาร์เรย์แนวตั้งที่เป็นตัวเลขจะปรากฏขึ้นโดยแสดงรายการตัวเลขคั่นด้วยบรรทัดใหม่