मेरे सहकर्मी, जिमी C / C ++ में थोड़े नए हैं। वह धीमे सीखने वाले भी हैं। अब, निष्पक्ष होने के लिए, उसका कोड हमेशा संकलित करता है, लेकिन उसके पास वास्तव में कुछ बुरी आदतें हैं। उदाहरण के लिए, हर कोई जानता है कि आप इस तरह एक सरणी को परिभाषित कर सकते हैं:
int spam[] = {4, 8, 15, 16, 23, 42};
जिमी को छोड़कर हर कोई है। वह आश्वस्त है कि एक सरणी बनाने का एकमात्र तरीका इस तरह है:
int spam[6];
spam[0] = 4;
spam[1] = 8;
spam[2] = 15;
spam[3] = 16;
spam[4] = 23;
spam[5] = 42;
मैं कोड-समीक्षा में उसके लिए यह तय कर रहा हूं, लेकिन वह नहीं सीखेगा। इसलिए मुझे आपको एक ऐसा टूल लिखना होगा, जो कमिट होने पर ऑटोमैटिकली उसके लिए ऐसा करे।
चुनौती
मैं चाहता हूं कि आप या तो एक पूरा कार्यक्रम लिखें या एक फ़ंक्शन जो इनपुट के रूप में एक मल्टीलाइन स्ट्रिंग में लेता है, और सी सरणी के अधिक कॉम्पैक्ट संस्करण को आउटपुट करता है। इनपुट हमेशा इस प्रारूप का अनुसरण करेगा , जिसमें व्हाट्सएप शामिल है:
identifier_one identifier_two[some_length];
identifier_two[0] = some_number;
identifier_two[1] = some_number;
identifier_two[2] = some_number;
...
identifier_two[some_length - 1] = some_number;
संक्षेप में, इनपुट हमेशा मान्य और अच्छी तरह से परिभाषित सी होगा। अधिक विवरण में:
सभी पहचानकर्ता सिर्फ अक्षरों और अंडरस्कोर से बने होंगे। लंबाई हमेशा कम से कम एक होगी, और कोई भी लापता या सीमा सूचकांक से बाहर कभी नहीं होगा। आप यह भी मान सकते हैं कि अनुक्रमित क्रम में हैं। उदाहरण के लिए:
foo bar[3];
bar[0] = 1
bar[2] = 9;
foo bar[1];
bar[0] = 1;
bar[1] = 3;
तथा
foo bar[3];
bar[2] = 9;
bar[0] = 1
bar[1] = 3
सभी अमान्य इनपुट हैं, और आपके प्रस्तुत करने में अपरिभाषित व्यवहार हो सकता है। आप यह भी मान सकते हैं कि सभी संख्याएँ मान्य दशमलव संख्याएँ होंगी, ऋणात्मक या सकारात्मक। इनपुट में बाहरी स्थान नहीं होंगे। आउटपुट को हमेशा इस प्रारूप का पालन करना चाहिए, जिसमें व्हाट्सएप शामिल है:
identifier_one identifier_two[] = {n1, n2, n3, ...};
यहाँ कुछ नमूना डेटा है:
Input:
spam eggs[10];
eggs[0] = 0;
eggs[1] = 4;
eggs[2] = 8;
eggs[3] = -3;
eggs[4] = 3;
eggs[5] = 7;
eggs[6] = 888;
eggs[7] = 555;
eggs[8] = 0;
eggs[9] = -2;
Output:
spam eggs[] = {0, 4, 8, -3, 3, 7, 888, 555, 0, -2};
Input:
char ans[2];
ans[0] = 52;
ans[1] = 50;
Output:
char ans[] = {52, 50};
Input:
blah_blah quux[1];
quux[0] = 105;
Output:
blah_blah quux[] = {105};
आप अपने इनपुट और आउटपुट को किसी भी उचित प्रारूप में ले सकते हैं, जैसे STDIN / STDOUT, फ़ंक्शन आर्गुमेंट्स और रिटर्न वैल्यू, फाइल पढ़ना और लिखना आदि। स्टैंडर्ड लूपहोल्स लागू होते हैं। बाइट्स जीत में सबसे छोटा जवाब!
Ideaयह निष्क्रिय और आक्रामक विचार है। आप था नहीं मुझ से इस विचार को मिलता है।