เด็กน้อยของฉันมีของเล่นแบบนี้:
ของเล่นนี้ประกอบด้วย 10 ถังเล็กวางซ้อนกันได้ซึ่งเราจะนับจาก 1 (เล็กที่สุด) ถึง 10 (ใหญ่ที่สุด) บางครั้งเขาทำกองเล็ก ๆ และของเล่นจบลงเช่นนี้
เราสามารถเป็นตัวแทนแผนผังกองเช่นนี้:
1 6
4 9 2 7
5 10 3 8
---------- <-- Floor
1 2 3 4 <-- Pile #
หรือใช้วิธีอื่น:
[[4,5],[9,10],[1,2,3],[6,7,8]]
ชุดของกองถังนี้สามารถบรรจุใหม่ได้อย่างง่ายดายเพื่อสร้างชุดเดิม (ภาพแรก) เพียงแค่วางกองเล็ก ๆ ของถังขนาดเล็กไว้ในกองที่ใหญ่กว่า:
1 1 6
2 2 7
1 6 3 6 3 8
4 9 2 7 4 9 7 4 9
5 10 3 8 5 10 8 5 10
---------- > [Pile 3 to 1] > ---------- > [Pile 4 to 2] > ---------- > [Pile 1 to 2] > Done!
1 2 3 4 1 2 3 4 1 2 3 4
อย่างไรก็ตามบางครั้งลูกของฉันพยายามที่จะสร้างหอคอยหรือโยนถังออกไปและกองก็จบลงด้วยการไม่สอดคล้องกันและชุดเดิมไม่สามารถสร้างขึ้นมาใหม่ได้เพียงแค่วางกองไว้ในอีกกองหนึ่ง ตัวอย่างของสิ่งนี้:
[[1,3,2],[4]] (the kid tried to build a tower by placing a bigger bucket
over a smaller one, we would need to reorder the buckets
first)
[[1,3,4],[2]] (the kid left aside an unordered bucket, we would need to remove
bucket #1 from pile #1 before restacking)
[[1,2,3],[5]] (the kid lost a bucket, we need to find it first)
ท้าทาย
รับรายการของรายการจำนวนเต็มแทนชุดของกองถังคืนค่าจริงถ้ารายการแสดงชุดกองได้อย่างง่ายดายคืนหรือเท็จในกรณีอื่น ๆ
- อินพุตจะได้รับเป็นรายการของจำนวนเต็มซึ่งเป็นตัวแทนของถังจากบนลงล่างสำหรับแต่ละสแต็ก
- จะไม่มีกองเริ่มต้นว่างเปล่า (คุณจะไม่ได้รับ
[[1,2,3],[],[4,5]]
เป็นอินพุต) - จำนวนถังทั้งหมดสามารถอยู่ในช่วงจำนวนเต็มที่เหมาะสม
- ลูกของฉันมีที่เก็บหนึ่งชุดเท่านั้นดังนั้นจะไม่มีองค์ประกอบที่ซ้ำกัน
- คุณสามารถเลือกสองค่าที่สอดคล้องกัน (และเชื่อมโยงกัน) สำหรับความจริงหรือเท็จ
- ที่เก็บข้อมูลจะมีป้ายกำกับจาก # 1 ถึง #N เป็น
N
จำนวนเต็มมากที่สุดในรายการจำนวนเต็ม ลูกของฉันยังไม่รู้แนวคิดของศูนย์ - คุณอาจได้รับการป้อนข้อมูลในรูปแบบที่เหมาะสมตราบเท่าที่มันแสดงถึงชุดของกองถัง เพียงระบุไว้ในคำตอบหากคุณเปลี่ยนวิธีรับข้อมูล
- นี่คือรหัสกอล์ฟดังนั้นโปรแกรม / ฟังก์ชั่นที่สั้นที่สุดสำหรับแต่ละภาษาจะชนะ!
ตัวอย่าง
Input: [[4,5],[9,10],[1,2,3],[6,7,8]]
Output: Truthy
Input: [[6,7,8,9,10],[1],[2],[3,4,5],[11,12,13]]
Output: Truthy
Input: [[2,3,4],[1],[5,6,7]]
Output: Truthy
Input: [[1,2],[5,6],[7,8,9]]
Output: Falsey (buckets #3 and #4 are missing)
Input: [[2,3,4],[5,6,7]]
Output: Falsey (bucket #1 is missing)
Input: [[1,3,4],[5,7],[2,6]]
Output: Falsey (non-restackable piles)
Input: [[1,4,3],[2],[5,6]]
Output: Falsey (one of the piles is a tower)