एक अहस्ताक्षरित 16-बिट पूर्णांक एन को देखते हुए , आपका कार्य यह निर्धारित करना है कि 4x4 मैट्रिक्स के अंदर मैप किया गया बाइनरी प्रतिनिधित्व एक टेट्रोमिनो आकार से मेल खा रहा है , और यदि हां, तो यह किस आकार का है।
आव्यूह
N का प्रत्येक बिट 4x4 मैट्रिक्स के अंदर मैप किया जाता है, बाएं से दाएं और ऊपर से नीचे, सबसे महत्वपूर्ण एक के साथ शुरू होता है।
उदाहरण :
N = 17600
binary representation: 0100010011000000
matrix: [ [ 0, 1, 0, 0 ],
[ 0, 1, 0, 0 ],
[ 1, 1, 0, 0 ],
[ 0, 0, 0, 0 ] ]
टेट्रोमिनो आकार
आधार आकार
O , I , S , Z , L , J और T अक्षर से पहचाने जाने वाले 7 टेट्रोमिनो आकार हैं :
रोटेशन और अनुवाद
यदि किसी आकृति का अनुवाद और / या 4x4 मैट्रिक्स के भीतर घुमाया जाता है, तो उसे अभी भी उसी टेट्रोमिनो का वैध रूपांतर माना जाता है। उदाहरण के लिए, 17600, 1136, 2272 और 1604 सभी को जे टेट्रोमिनो के रूप में पहचाना जाना चाहिए :
लपेटो मत!
हालांकि, आकृतियों को मैट्रिक्स के किसी भी सीमा से परे लपेट या स्थानांतरित नहीं किया जा सकता है। उदाहरण के लिए, न तो 568 और न ही 688 को J tetrominoes के रूप में पहचाना जाना चाहिए (अकेले किसी भी अन्य आकार को दें):
स्पष्टीकरण और नियम
- आप इनपुट को पूर्णांक के रूप में या सीधे 16 बाइनरी अंकों के रूप में किसी भी उचित प्रारूप में ले सकते हैं, जैसे कि 2 डी सरणी, एक फ्लैट सरणी या एक सीमांकित स्ट्रिंग।
- इनपुट को एक अहस्ताक्षरित 16-बिट पूर्णांक (या एक सरणी या एक स्ट्रिंग के रूप में इसके समकक्ष प्रतिनिधित्व) की गारंटी दी जाती है।
- जब एक मान्य आकार की पहचान की जाती है, तो आपको आकृति की पहचान करने वाले पत्र को मुद्रित करना या वापस करना होगा , या तो निचले या ऊपरी मामले में।
- यदि कोई आकृति की पहचान नहीं की गई है, तो आपको किसी ऐसे मूल्य को प्रिंट या वापस करना होगा जो किसी भी टेट्रोमिनो पत्र से मेल नहीं खाता है। आप कुछ भी नहीं लौटाने का विकल्प चुन सकते हैं।
- वैध माना जाने के लिए, मैट्रिक्स में किसी भी अतिरिक्त कोशिकाओं के बिना सटीक टेट्रोमिनो आकार होना चाहिए (परीक्षण में 1911 और 34953 देखें)।
- यह कोड-गोल्फ है , इसलिए बाइट्स में सबसे कम जवाब जीतता है!
परीक्षण के मामलों
परीक्षण मामलों को 2D सरणियों के रूप में प्राप्त करने के लिए आप इस लिंक का अनुसरण कर सकते हैं।
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
जेएस में फ़ंक्शन चेन का उपयोग करने के लिए एक तकनीक का निर्माण करने से विचलित हो गया : P