आपको एक प्रोग्राम या फ़ंक्शन लिखना चाहिए जो इनपुट आउटपुट के रूप में टेट्रिस ब्लॉक की सूची देता है या एक ही ऊंचाई के स्तर में दो बिंदुओं के बीच सबसे बड़ा अंतर देता है जो टुकड़े कनेक्ट कर सकते हैं।
टेट्रिस के 7 प्रकार निम्नलिखित हैं:
हम इन टुकड़ों को क्रमशः I, J, L, O, S, T और Z अक्षरों से संदर्भित करेंगे, उनकी आकृतियों का उल्लेख करेंगे। आप टुकड़ों को घुमा सकते हैं लेकिन उन्हें एक टेट्रिस गेम की तरह नहीं दिखा सकते।
हमारा काम दिए गए टुकड़ों से एक orthogonally जुड़ा हुआ क्षेत्र (पक्षों से जुड़ा हुआ) बनाना है। इस क्षेत्र को दो इकाई चौकों (जो orthogonally) से जुड़ना चाहिए, जो समान ऊंचाई पर हैं। हमें दो वर्गों के बीच सबसे बड़ा संभावित अंतर खोजना चाहिए जिसे हम पा सकते हैं।
विस्तृत उदाहरण
टुकड़ा एल के साथ हम 3 के अंतराल को जोड़ सकते हैं
L
XLLLX
टुकड़ा एस के साथ हम 2 के अंतराल को जोड़ सकते हैं
SS
XSSX
S, S, O के टुकड़ों के साथ हम 7 का अंतर जोड़ सकते हैं (ध्यान दें कि हम 8 के अंतर को नहीं जोड़ सकते हैं)
S
XSSOO SSX
SOOSS
इनपुट
- उपलब्ध स्ट्रिंग को केवल बड़े अक्षरों I, J, L, O, S, T और Z से युक्त टुकड़ों का प्रतिनिधित्व करता है। प्रत्येक अक्षर एक पूर्ण टेट्रिस टुकड़े का प्रतिनिधित्व करता है।
- पत्र स्ट्रिंग में वर्णानुक्रम में होंगे।
- स्ट्रिंग कम से कम एक वर्ण लंबा होगा।
उत्पादन
- एक एकल धनात्मक पूर्णांक, दिए गए टुकड़ों के साथ जुड़ने वाला सबसे बड़ा अंतर।
उदाहरण
इनपुट => आउटपुट
OSS => 7
LS => 5
LZ => 6
ZZZZ => 10
LLSSS => 14
IIJSSSTTZ => 28
IISSSSSS => 24
OOOSSSSSSSSSSSSTT => 45
IJLOSTZ => 21
IJLOSTZZZZZZZ => 37
IIJLLLOSTT => 31
IJJJOOSSSTTZ => 35
यह कोड-गोल्फ है इसलिए सबसे छोटी प्रविष्टि जीतती है।