आपके बॉस ने आपको केवल 12 प्रोग्रामिंग कार्यों की एक सूची ईमेल की है, जो उन्हें जल्द से जल्द चाहिए। कार्य काफी सरल हैं, लेकिन आपका बॉस, सोशल नेटवर्किंग द्वारा चूसा गया एक युवा सॉफ्टवेयर टाइकून है, इस बात पर जोर देता है कि आपके समाधान एक ही ट्विटर ट्वीट के भीतर फिट होने में सक्षम हैं ।
इसका मतलब है कि आपके पास सभी कार्यों को हल करने के लिए केवल 140 बाइट्स के कोड हैं, औसतन 11.67 बाइट्स प्रति कार्य। (हां, ट्विटर पात्रों को गिनता है लेकिन आपके बॉस ने विशेष रूप से बाइट्स कहा है।)
आपको एहसास है कि 140 बाइट्स में सभी 12 कार्यों को हल करने का कोई तरीका नहीं है लेकिन आपको संदेह है कि आपका बॉस वास्तव में आपके सभी समाधानों का परीक्षण नहीं करेगा। इसलिए आप जितने भी कार्य कर सकते हैं, उनमें से कुछ को पूरी तरह से छोड़ देते हैं। आपका मानसिकता यह कोई बात नहीं है कि जो कार्य आप पूरा का सबसेट, केवल यह जानना काफ़ी है कि उप-समुच्चय है संभव के रूप में के रूप में बड़े ।
आप कितने कार्य पूरा कर सकते हैं?
चुनौती
12 विभिन्न कार्यक्रमों को लिखें, जिनमें से प्रत्येक नीचे सूचीबद्ध 12 कार्यों में से एक को सही ढंग से हल करता है। इन कार्यक्रमों की लंबाई का संचयी योग 140 बाइट्स से अधिक नहीं हो सकता है
वैकल्पिक रूप से, आप एक एकल प्रोग्राम लिख सकते हैं जो 140 बाइट्स से अधिक लंबा नहीं है जो 1 से 12 तक पूर्णांक लेता है और (आदर्श रूप से) आवश्यक कार्य को हल करने के लिए इसी कार्य को हल करने के लिए आगे बढ़ता है। सभी कार्यों को काम करने की आवश्यकता नहीं है, लेकिन केवल वे हैं जो आपके स्कोर की ओर गिनती करते हैं। कार्य नहीं करने वाले कार्यों को त्रुटि या कुछ और करने की अनुमति है।
या तो मामले में "प्रोग्राम" वास्तव में एक फ़ंक्शन हो सकता है जो इनपुट को तर्क के रूप में लेता है या इसके लिए संकेत देता है और आउटपुट को प्रिंट या वापस करता है। इसलिए, उदाहरण के लिए, आप एक 140 बाइट फ़ंक्शन लिख सकते हैं जो दिखता है f(taskNumber, taskInput)
, या आप प्रत्येक कार्य के लिए अलग कोड स्निपेट लिख सकते हैं, कुछ फ़ंक्शन के रूप में और कुछ पूरी तरह से विकसित कार्यक्रमों के रूप में।
अन्य जानकारी:
सभी कोड एक ही भाषा में लिखे जाने चाहिए।
हमेशा की तरह, इनपुट स्टड, कमांड लाइन, एक फ़ंक्शन तर्क, या जो कुछ भी आपकी भाषा के लिए सामान्य है, से आना चाहिए। आउटपुट को stdout या आपकी भाषा के निकटतम विकल्प के लिए मुद्रित किया जाता है, या एक उपयुक्त प्रकार में वापस किया जाता है।
इनपुट स्वरूपण की एक उचित मात्रा ठीक है; उदाहरण के लिए स्ट्रिंग के आसपास या
\n
वास्तविक न्यूलाइन्स के बजाय उद्धरण ।आउटपुट बिल्कुल वही होना चाहिए जिसे बिना किसी बाहरी स्वरूपण या व्हाट्सएप के कहा जाता है। अपवाद एक वैकल्पिक एकल अनुगामी न्यूलाइन है।
कोड जो केवल REPL वातावरण में चलता है, एक प्रोग्राम या फ़ंक्शन का गठन नहीं करता है।
आप कई कार्यक्रम नहीं लिख सकते हैं जो कई कार्यों को हल करते हैं। यह या तो एक कार्यक्रम है (आदर्श रूप से) सभी कार्यों को हल करता है, या (आदर्श रूप से) 12 प्रोग्राम हैं जो प्रत्येक एक कार्य को हल करते हैं।
एक टास्क सॉल्यूशन पोस्ट करना, जिसे आपने नहीं लिखा या केवल थोड़ा संशोधित किया गया है, मूल लेखक के लिए कोई अटेंशन दिए बिना अनुमति नहीं है, और आदर्श रूप से अनुमति भी मिल रही है। यदि आपका उत्तर मुख्य रूप से अन्य सभी उत्तरों से सबसे छोटे समाधानों की रचना करता है, तो यह एक सामुदायिक विकि होना चाहिए।
स्कोरिंग
सबसे अधिक कार्यों को पूरा करने वाला प्रस्तुतकर्ता विजेता होता है। यदि दो सबमिशन टाई होती हैं, तो सबसे कम बाइट्स जीतता है। यदि बाइट काउंट बंधे होते हैं, तो पहले जमा करने वाला जीत जाता है। सामुदायिक विकि उत्तरों को जीतने की अनुमति नहीं है।
हमें बताना सुनिश्चित करें कि आपने कौन से कार्य हल किए हैं, न कि कितने!
गैर-गोल्फरों के लिए बाधा:
यह संभावना है कि इस चुनौती पर गोल्फ भाषाओं का प्रभुत्व होगा । कई भाषाओं में 140 बाइट के भीतर एक या दो कार्य को हल करने में समस्या हो सकती है। इसलिए आप एक गैर-प्रतिस्पर्धी उत्तर प्रस्तुत कर सकते हैं जहां सीमा 3 ट्वीट है, अर्थात 420 बाइट्स। अन्य सभी नियम समान हैं।
कार्य
टास्क 1 - क्या तीन नंबर एक त्रिकोण बना सकते हैं?
तीन सकारात्मक पूर्णांकों में ले जाएं और एक सत्य / मिथ्या मूल्य का उत्पादन करें, जो यह दर्शाता है कि उन लंबाई वाली तीन रेखाएं त्रिकोण बना सकती हैं या नहीं । आप यह नहीं मान सकते हैं कि संख्या किसी विशेष क्रम में आती है।
सत्य उदाहरण (प्रति पंक्ति एक):
20 82 63
1 1 1
2 3 4
1 2 2
झूठे उदाहरण:
6 4 10
171 5 4
1 1 2
1 2 3
टास्क 2 - निकटतम मिलियन तक
7 दशमलव अंकों (0-9) की एक स्ट्रिंग को देखते हुए, उन्हें एक संख्या प्राप्त करने के लिए पुनर्व्यवस्थित करें जो एक मिलियन के करीब संभव है। यानी abs(1000000 - rearrangedNumber)
कम से कम होना चाहिए।
किसी पूर्णांक के रूप में परिणामी संख्या को प्रिंट करें या वापस लौटाएं, न कि एक स्ट्रिंग (इसलिए वहां अग्रणी शून्य नहीं होना चाहिए, जब तक कि आपकी भाषा के लिए मानक न हो)।
उदाहरण के लिए इनपुट का 9034318
परिणाम 984331
(और नहीं 1033489
) होना चाहिए ।
2893984
बनना चाहिए 2348899
।
0001000
बनना चाहिए 1000000
।
0000020
बनना चाहिए 200000
।
टास्क 3 - सरल कीबोर्ड सिम्युलेटर
लोअरकेस अक्षर (az), रिक्त स्थान और कोण कोष्ठक की एक स्ट्रिंग में ले लो <>
। बाएं से दाएं पढ़ें, यह स्ट्रिंग उन कुंजियों का प्रतिनिधित्व करती है जो एक मानक कीबोर्ड पर दबाए गए थे, जबकि शुरू में खाली पाठ संपादक खुला था। अक्षर और स्थान उनकी सामान्य कुंजियों के <
अनुरूप होते हैं लेकिन बाएँ तीर कुंजी और >
दाएँ तीर कुंजी से मेल खाते हैं , दोनों ही कर्सर को बिना दबाए ले जाते हैं ।
<
कर्सर को एक वर्ण छोड़ देता है, या यदि स्ट्रिंग के शुरू होने पर कर्सर कुछ भी नहीं करता है।
>
कर्सर को एक वर्ण सही ले जाता है, या यदि स्ट्रिंग के अंत में कर्सर नहीं है, तो कुछ भी नहीं करता है।
एक बार इनपुट एडिटर में सभी स्ट्रिंग को दबाए जाने के बाद, स्ट्रिंग को आउटपुट करें। कर्सर को स्थानांतरित करने के लिए आउटपुट से बचने के कोड की अनुमति नहीं है।
इनपुट में हमेशा कम से कम एक नॉन-एरो की विशेषता होगी।
उदाहरण के लिए इनपुट ui<<q>>ck <<<<<<the<<<<>>> >>>>>>>>brown x<o<f
देना चाहिए the quick brown fox
।
op<<l>>t<<<lam>>>>>>imi<<<><>>>zer<<<<<<<<<<<<<<<<<<>>><>m
देना चाहिए llammoptimizer
।
e< <c<b<a
देना चाहिए abc e
।
<<<>><><<><toast>><<>><><<>><
देना चाहिए toast
।
कार्य 4 - पत्र पत्र
कई फोंट में, अपरकेस अंग्रेज़ी वर्णों पत्र के 6 क्षैतिज और ऊर्ध्वाधर लाइनों से बना होता है: E
, F
, H
, I
, L
, और T
। हम इन्हें FILTHE अक्षर कहते हैं।
अपरकेस अक्षर (AZ) की एक स्ट्रिंग में ले जाएँ और परिणामी पूर्णांक को आउटपुट करते हुए FILTHE अक्षरों में लाइनों की संख्या गिनें।
E
, F
, H
, I
, L
, और T
4, 3, 3, 3, 2, और 2 लाइनों क्रमशः है।
उदाहरण GEOBITS
के लिए 4 + 3 + 2 = 9 लाइनें FILTHE अक्षरों का हिस्सा हैं (के लिए .E..IT.
), इसलिए आउटपुट होना चाहिए 9
।
ABCDEFGHIJKLMNOPQRSTUVWXYZ
आउटपुट चाहिए 17
।
ABCDGJKMNOPQRSUVWXYZ
आउटपुट चाहिए 0
।
FILTHYLINESINLETTERS
आउटपुट चाहिए 39
।
टास्क 5 - एलेक्स रिकर्सिव ए।
हमारे मॉडरेटर एलेक्स ए के पास काफी रहस्यमयी प्रारंभिक "ए" है।
अब मैं निश्चित नहीं हूं, लेकिन मुझे लगता है कि इसका A.
मतलब है .A xelA
। और मुझे पूरा यकीन है कि .A
वहाँ चुपके से खड़ा है Alex A.
।
इस प्रकार एलेक्स का पूरा नाम पाने के लिए हमें A.
's .A
' और 's ' का विस्तार करना चाहिए :
Alex A. -> Alex [A.] -> Alex [.A xelA] -> Alex .A xelA -> Alex [.A] xelA -> Alex [Alex A.] xelA -> Alex Alex A. xelA -> etc.
अपने कार्यक्रम को एक गैर-नकारात्मक पूर्णांक में ले जाएं और Alex A.
कई बार विस्तार करें , परिणामस्वरूप स्ट्रिंग को आउटपुट करें।
तो
0
हो जाता है Alex A.
,
1
हो जाता है Alex .A xelA
,
2
हो जाता है Alex Alex A. xelA
,
3
हो जाता है Alex Alex .A xelA xelA
,
4
हो जाता है Alex Alex Alex A. xelA xelA
,
5
हो जाता है Alex Alex Alex .A xelA xelA xelA
,
और इतने पर।
(मैंने इसे इसलिए बनाया क्योंकि मैंने एलेक्स को अपनी मामूली श्रद्धांजलि चुनौती से अनजाने में छोड़ने के लिए बुरा महसूस किया था ।: पी)
टास्क 6 - नंपाद रोटेशन
एक पूर्णांक में 1 से 9 समावेशी तक ले जाएं (आप इसे एक स्ट्रिंग के रूप में ले सकते हैं)। 3 × 3 वर्ग के अंकों का आउटपुट
789
456
123
90 ° की वृद्धि में घुमाया गया ताकि इनपुट अंक शीर्ष पंक्ति पर कहीं भी दिखाई दे। जब 5
इनपुट होता है तो कोई भी रोटेशन वैध आउटपुट होता है क्योंकि 5
कैंट को शीर्ष पर घुमाया जा सकता है।
जैसे 3
इनपुट कब है, दोनों
963
852
741
तथा
321
654
987
मान्य आउटपुट हैं।
इनपुट के लिए 4
, केवल
147
258
369
वैध आउटपुट है।
कार्य 7 - दसियों में विभक्त अंक
दशमलव अंकों (0-9) की एक गैर-रिक्त स्ट्रिंग में लें और एक सत्य मान का उत्पादन करें यदि इसे सन्निहित खंडों में विभाजित किया जा सकता है, जहां प्रत्येक खंड में सभी अंक ठीक 10. तक हैं। यदि यह संभव नहीं है, तो एक मिथ्या मान का उत्पादन करें।
जैसे 19306128
विभाजित किया जा सकता है 19|3061|28
, सभी खंड 10 (1 + 9, 3 + 0 + 6 + 1, 2 + 8) को जोड़ते हैं, इसलिए एक सत्य मूल्य आउटपुट होना चाहिए।
सत्य उदाहरण (प्रति पंक्ति एक):
19306128
073
730
0028115111043021333109010
2222255
झूठे उदाहरण:
6810410
9218
12341
5222225
000
टास्क 8 - स्क्वायर क्लॉक
लगातार आकार के मल्टीलाइन स्ट्रिंग में लें।
12
इनपुट है तो आउटपुट
_ _
| | |
|_ _|
3
इनपुट है तो आउटपुट
_ _
| |_|
|_ _|
6
इनपुट है तो आउटपुट
_ _
| | |
|_|_|
9
इनपुट है तो आउटपुट
_ _
|_| |
|_ _|
कोई अन्य इनपुट मामले नहीं हैं।
टास्क 9 - ब्रैकेट आर्ट
एक 4 बाइट छोड़ दिया वर्गों में से प्रत्येक से एक युक्त स्ट्रिंग में ले लो (
, [
, {
, और <
किसी भी क्रम में।
संगत दाएं कोष्ठक जोड़ें ताकि स्ट्रिंग 8 बाइट्स लंबी हो और समरूपता की एक ऊर्ध्वाधर रेखा हो। जैसे [<({
बन जाता है [<({})>]
।
फिर इस स्ट्रिंग में प्रत्येक ब्रैकेट को उल्टा करें। जैसे [<({})>]
बन जाता है ]>)}{(<[
।
मूल 8 बाइट ब्रैकेट स्ट्रिंग को अलग-अलग लाइनों पर ऊपर और नीचे रिवर्स संस्करण के साथ आउटपुट करें।
तो इनपुट के लिए अंतिम आउटपुट [<({
होगा
]>)}{(<[
[<({})>]
]>)}{(<[
इसी तरह, के लिए आउटपुट <({[
होना चाहिए
>)}][{(<
<({[]})>
>)}][{(<
इनपुट (<<[
अमान्य है क्योंकि {
गायब है और एक अतिरिक्त है <
।
टास्क 10 - पेरिमिटराइज़
पाठ के एक आयताकार ग्रिड में ले लो (1 × 1 सबसे छोटा) .
जो खाली जगह का प्रतिनिधित्व करता है और X
ठोस टाइल्स का प्रतिनिधित्व करता है। ग्रिड की सीमा से परे कोशिकाओं को खाली माना जाता है। आप मान सकते हैं कि 4 ग्रिड एज पंक्तियों में से प्रत्येक और कॉलम में कम से कम एक होगा X
।
उदाहरण के लिए एक वैध इनपुट हो सकता है:
XXX.....X.....
X..X...X.X....
XXX.....X....X
पाठ का एक और आयताकार ग्रिड आउटपुट करें जहां हर खाली सेल जो कि इनपुट ग्रिड से बाहर के लोगों सहित एक X
orthogonally या तिरछे पड़ोसी , बन जाता है । तो अनिवार्य रूप से ठोस टाइलों के सभी भागों के चारों ओर एक परिधि खींची जाती है। नया ग्रिड जितना होना चाहिए, उससे बड़ा नहीं होना चाहिए।o
o
तो ऊपर दिए गए उदाहरण का आउटपुट होगा:
ooooo...ooo.....
oXXXoo.ooXoo....
oXooXo.oXoXo.ooo
oXXXoo.ooXoo.oXo
ooooo...ooo..ooo
इसी तरह, इनपुट का आउटपुट XXX..X.X
होना चाहिए
oooooooooo
oXXXooXoXo
oooooooooo
और उत्पादन
oooooooooo.
oXXXooXoXo.
oooooooooo.
खाली सही कॉलम अनावश्यक होने के कारण अमान्य होगा।
आप किसी भी 3 अलग उपयोग कर सकते हैं प्रिंट योग्य ASCII के स्थान पर वर्ण .
, X
है, और o
।
टास्क 11 - सटोर स्क्वायर
उत्पादन Sator वर्ग :
SATOR
AREPO
TENET
OPERA
ROTAS
कोई भी पत्र लोअरकेस या अपरकेस हो सकता है, इसलिए
SatOR
aRePO
tenet
OPERa
RoTaS
मान्य आउटपुट भी है।
कोई इनपुट नहीं है।
टास्क 12 - प्रधान ट्वीट
कोई इनपुट न लें, लेकिन 140 बाइट प्रिंट करने योग्य ASCII स्ट्रिंग का उत्पादन करें जिसमें 95 प्रिन्ट ASCII वर्णों में से कम से कम एक हो। (इसलिए 45 अक्षर डुप्लिकेट होंगे।)
इस स्ट्रिंग में सभी 140 बाइट्स के वर्ण कोडों का योग एक सोफी जर्मेन प्राइम होना चाहिए , अर्थात एक अभाज्य संख्या p
ऐसी है जो 2p+1
प्रधान भी है। अंतरिक्ष के लिए वर्ण कोड 32, 33 के लिए !
, 34 के लिए "
, और इतने पर 126 के लिए है ~
। इस राशि की गणना अजगर के रूप में की जा सकती है sum(map(ord, myString))
।
एक उदाहरण आउटपुट है:
! "#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~STUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~d
वर्ण कोड योग 12203 का अभिप्राय है जिसका संबंधित सुरक्षित प्राइम 24407 है।
import
एस से कैसे गिनना चाहिए ? मान लें कि मैं 5 फ़ंक्शन लिखता हूं जहां 2 को एक ही मॉड्यूल (जैसे import Math
) की आवश्यकता है, क्या यह दो बार गिना जाता है?