รับจำนวนเต็ม 16 บิตN ที่ไม่ได้ลงนามงานของคุณคือการตรวจสอบว่าการแสดงฐานสองของมันถูกแมปภายในเมทริกซ์ 4x4 กำลังจับคู่กับรูปทรง tetrominoหรือไม่และถ้าเป็นเช่นนั้น
มดลูก
แต่ละบิตของNจะถูกแมปภายในเมทริกซ์ 4x4 จากซ้ายไปขวาและจากบนลงล่างเริ่มต้นด้วยบิตที่สำคัญที่สุด
ตัวอย่าง :
N = 17600
binary representation: 0100010011000000
matrix: [ [ 0, 1, 0, 0 ],
[ 0, 1, 0, 0 ],
[ 1, 1, 0, 0 ],
[ 0, 0, 0, 0 ] ]
รูปร่าง Tetromino
รูปร่างฐาน
มีรูปร่าง tetromino 7 รูปแบบตามตัวอักษรO , I , S , Z , L , JและT :
การหมุนและการแปล
หากมีการแปลรูปร่างและ / หรือหมุนภายในเมทริกซ์ 4x4 ก็ยังถือว่าเป็นรูปแบบที่ถูกต้องของ tetromino เดียวกัน ตัวอย่างเช่นควรระบุ 17600, 1136, 2272 และ 1604 เป็นJ tetrominoes:
อย่าห่อ!
อย่างไรก็ตามรูปร่างไม่สามารถพันหรือเคลื่อนที่ได้เกินขอบเขตของเมทริกซ์ ตัวอย่างเช่นไม่ควรระบุ568 หรือ 688 เป็นJ tetrominoes (ไม่นับรูปร่างอื่น ๆ ):
คำอธิบายและกฎ
- คุณอาจรับอินพุตเป็นจำนวนเต็มหรือเป็นเลขฐานสองโดยตรง 16 หลักในรูปแบบที่เหมาะสมเช่นอาร์เรย์ 2D, อาร์เรย์แบบแบนหรือสตริงที่มีการคั่น
- อินพุตรับประกันว่าจะเป็นจำนวนเต็ม 16 บิตที่ไม่ได้ลงชื่อ (หรือการแสดงที่เทียบเท่ากันในฐานะอาร์เรย์หรือสตริง)
- เมื่อมีการระบุรูปร่างที่ถูกต้องคุณต้องพิมพ์หรือส่งคืนตัวอักษรที่ระบุรูปร่างไม่ว่าจะเป็นตัวพิมพ์เล็กหรือตัวพิมพ์ใหญ่
- หากไม่มีการระบุรูปร่างคุณต้องพิมพ์หรือคืนค่าที่ไม่ตรงกับตัวอักษร tetromino คุณอาจเลือกที่จะไม่ส่งคืนสิ่งใดเลย
- ในการพิจารณาว่าถูกต้องเมทริกซ์จะต้องมีรูปร่าง tetromino ที่แน่นอนโดยไม่มีเซลล์เพิ่มเติมใด ๆ (ดู 1911 และ 34953 ในกรณีทดสอบ)
- นี่คือโค้ดกอล์ฟดังนั้นคำตอบที่สั้นที่สุดในจำนวนไบต์ชนะ!
กรณีทดสอบ
คุณสามารถไปที่ลิงค์นี้เพื่อรับกรณีทดสอบเป็นอาร์เรย์ 2 มิติ
0 -> false
50 -> false
51 -> 'O'
1911 -> false
15 -> 'I'
34952 -> 'I'
34953 -> false
1122 -> 'S'
3168 -> 'Z'
785 -> 'L'
1136 -> 'J'
568 -> false
688 -> false
35968 -> 'T'
19520 -> 'T'
0
เช่น1111011110111101111
สำหรับ65535
?
15,240,3840,4369,8738,17476,34952,61440
J: 71,113,142,226,275,550,802,1100,1136,1604,1808,2272,3208,3616,4400,8800,12832,17600,18176,25664,28928,36352,51328,57856
L: 23,46,116,232,368,547,736,785,1094,1570,1856,2188,3140,3712,5888,8752,11776,12560,17504,25120,29696,35008,50240,59392
O: 51,102,204,816,1632,3264,13056,26112,52224
S: 54,108,561,864,1122,1728,2244,8976,13824,17952,27648,35904
T: 39,78,114,228,305,562,610,624,1124,1220,1248,1824,2248,3648,4880,8992,9760,9984,17984,19520,19968,29184,35968,58368
Z:99,198,306,612,1224,1584,3168,4896,9792,19584,25344,50688
func1 . func2 . func3
ใน JS: P