कंप्यूटर वैज्ञानिकों के रूप में, आप शायद पॉप और पुश की बुनियादी सूची संचालन से परिचित हैं । ये सरल ऑपरेशन हैं जो तत्वों की एक सूची को संशोधित करते हैं। हालांकि, क्या आपने कभी ऑपरेशन फ्लॉप के बारे में सुना है ? ( फ्लिप- फ्लॉप में )? यह बहुत आसान है। एक संख्या n को देखते हुए , सूची के पहले n तत्वों को उल्टा करें । यहाँ एक उदाहरण है:
>>> a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> a.flop(4)
[4, 3, 2, 1, 5, 6, 7, 8, 9, 10]
फ्लॉप ऑपरेशन के बारे में अच्छी बात यह है कि आप इसका उपयोग किसी सूची में कुछ अच्छी चीजों को करने के लिए कर सकते हैं, जैसे कि इसे क्रमबद्ध करना । हम फ्लॉप फिल्मों के साथ कुछ ऐसा ही करने जा रहे हैं:
पूर्णांक की एक सूची को देखते हुए, "इसे पास करें"। दूसरे शब्दों में, इसे क्रमबद्ध करें ताकि प्रत्येक डुप्लिकेट तत्व लगातार दिखाई दे।
यह फ्लॉप के साथ किया जा सकता है! उदाहरण के लिए, निम्नलिखित सूची लें:
>>> a = [3, 2, 1, 4, 3, 3, 2]
>>> a.flop(4)
[4, 1, 2, 3, 3, 3, 2]
>>> a.flop(3)
[2, 1, 4, 3, 3, 3, 2]
>>> a.flop(6)
[3, 3, 3, 4, 1, 2, 2]
यह हमें आज की चुनौती की परिभाषा की ओर ले जाता है:
पूर्णांक की एक सूची को देखते हुए, फ्लॉप के किसी भी सेट को आउटपुट करें, जिसके परिणामस्वरूप सूची पड़ोसी होगी।
उदाहरण के रूप में अंतिम सूची का उपयोग करते हुए, आपको आउटपुट देना चाहिए:
4
3
6
क्योंकि सूची को 4 से रोकना, फिर 3 से, फिर 6 से पड़ोसी सूची में परिणाम होगा। ध्यान रखें कि आपको फ्लॉप की सबसे छोटी संभावित सूची को मुद्रित करने की आवश्यकता नहीं है जो पड़ोसी की सूची है। यदि आपने प्रिंट किया था:
4
4
4
3
1
1
6
2
2
इसके बजाय, यह अभी भी एक मान्य आउटपुट होगा। हालाँकि, आप कभी भी सूची की लंबाई से बड़ी संख्या में आउटपुट नहीं कर सकते हैं । ऐसा इसलिए है क्योंकि एक सूची के लिए a = [1, 2, 3]
, कॉलिंग a.flop(4)
बकवास है।
यहाँ कुछ उदाहरण हैं:
#Input:
[2, 6, 0, 3, 1, 5, 5, 0, 5, 1]
#Output
[3, 7, 8, 6, 9]
#Input
[1, 2]
#Output
<any list of integers under 3, including an empty list>
#Input
[2, 6, 0, 2, 1, 4, 5, 1, 3, 2, 1, 5, 6, 4, 4, 1, 4, 6, 6, 0]
#Output
[3, 19, 17, 7, 2, 4, 11, 15, 2, 7, 13, 4, 14, 2]
#Input
[1, 1, 1, 1, 2, 2, 2, -1, 4]
#Output
[]
#Input
[4, 4, 8, 8, 15, 16, 16, 23, 23, 42, 42, 15]
#Output
[12, 7]
ध्यान रखें कि इनमें से प्रत्येक उदाहरण में, दिया गया आउटपुट सिर्फ एक संभावित वैध आउटपुट है। जैसा कि मैंने पहले कहा, फ्लॉप का कोई भी सेट जो पड़ोसियों को दी गई सूची को मान्य आउटपुट है । यदि आप फ़्लॉप की दी गई सूची को सही ढंग से पड़ोसी सूची में रखते हैं, तो सत्यापित करने के लिए आप इस अजगर स्क्रिप्ट का उपयोग कर सकते हैं ।
आप किसी भी उचित प्रारूप में इनपुट और आउटपुट ले सकते हैं। उदाहरण के लिए, फ़ंक्शन तर्क / रिटर्न वैल्यू, STDIN / STDOUT, फ़ाइल पढ़ना / लिखना आदि सभी मान्य हैं। हमेशा की तरह, यह कोड-गोल्फ है , इसलिए सबसे छोटा कार्यक्रम बनाएं जो आप कर सकते हैं, और मज़े करें! :)