निम्नलिखित स्ट्रिंग पर विचार करें:
Tin Snips
इस स्ट्रिंग में आवर्त सारणी पर कई परमाणु चिन्ह होते हैं । हम उनमें से कई की पहचान करने के लिए इस स्ट्रिंग को फिर से लिख सकते हैं:
[Ti][N] [Sn][I][P][S]
बेशक, हम इसे इस तरह भी लिख सकते हैं:
T[In] [S][Ni][P][S]
इनपुट को फिर से लिखने के नियम इस प्रकार हैं:
- परमाणु प्रतीकों के मिलान के मामले में इनपुट का मामला मायने नहीं रखता है।
- यदि किसी तत्व का उपयोग परमाणु प्रतीक में किया जाता है, तो इसका मामला बदलना चाहिए, इसलिए प्रतीक सही है। Ex:
h
बन जाएगा[H]
। - सभी तत्व प्रतीक ASCII वर्ग कोष्ठक में संलग्न हैं,
[
और]
। - व्हॉट्सएप संरक्षित है:
Big ego
"g" और "e" को संयोजित नहीं कर सकता[Ge]
। - सभी इनपुट वर्णों को परमाणु प्रतीक में संयोजित करने की आवश्यकता नहीं है: यदि किसी इनपुट चरित्र को प्रतीक में नहीं रखा गया है, तो इसे as-is (मामला मायने नहीं रखता) के माध्यम से पारित किया जाता है।
- यदि कोई प्रतीक बनाया जा सकता है, तो उसे बनाया जाना चाहिए। दूसरे शब्दों में, इसे
Tin
उपरोक्त उदाहरण में आउटपुट करने की अनुमति नहीं है क्योंकि उस शब्द में कम से कम एक प्रतीक बनाना संभव है। किसी चरित्र को अप्रयुक्त के माध्यम से पारित किया जा सकता है जब केवल एक परमाणु प्रतीक का निर्माण करने के लिए इस्तेमाल नहीं किया जा सकता है। - इस चुनौती के प्रयोजनों के लिए, हाइड्रोजन (1) से ओगेनेसन (118) तक सभी तत्व मान्य हैं। कोई उच्च तत्व मान्य नहीं हैं।
- कुछ उच्च तत्वों में अस्पष्ट नाम और प्रतीक हैं: इस चुनौती के प्रयोजनों के लिए, विकिपीडिया पर संस्करण का उपयोग किया जाएगा। सुविधा के लिए, स्वीकार्य परमाणु प्रतीक यहां हैं: H, He, Li, Be, B, C, N, O, F, Ne, Na, Mg, Al, Si, P, S, Cl, Ar, K, Ca, Sc, Ti, V, Cr, Mn, Fe, Co, Ni, Cu, Zn, Ga, Ge, Ge, As, Se, Br, Kr, Rb, Sr, Y, Zr, Nb, Mo, Tc, Ru, Rh, Pd, Ag, Cd, In, Sn, Sb, Te, I, Xe, Cs, Ba, La, Ce, Pr, Nd, Pm, Sm, Eu, Gd, Tb, Dy, Ho, Er, Tm, Yb, लू, Hf, Ta, W, Re, Os, Ir, Pt, Au, Hg, Tl, Pb, Bi, Po, At, Rn, Fr, Ra, Ac, Th, Pa, U, Np, Pu, Am, Cm, Bk, Cf, Es, Fm, Md, No, Lr, Rf, Db, Sg, Bh, Hs, Mt, Ds, Rg, Cn, Nh, Fl, Mc, Lv, Ts, Og।
एक प्रोग्राम या फ़ंक्शन लिखें जो एकल प्रदान किए गए इनपुट से सभी संभावित आउटपुट उत्पन्न करता है। इनपुट और आउटपुट दोनों आपके चयन के किसी भी रूप में हो सकते हैं। यह एक स्ट्रिंग, वर्णों की सरणी या कुछ अन्य डेटा संरचना हो सकती है: जो कुछ भी सुविधाजनक और स्पष्ट रूप से इनपुट और आउटपुट दोनों का प्रतिनिधित्व करता है। इनपुट और आउटपुट दोनों आपके कोड से बाहर / पास हो सकते हैं, हालांकि आप चुनते हैं: मानक इन / आउट, फ़ंक्शन तर्क / रिटर्न, या कुछ और।
- इनपुट सकारात्मक लंबाई का एक स्ट्रिंग (पिछले पैराग्राफ देखें) हो सकता है जिसमें केवल मनमानी मामले के ASCII वर्ण और स्थान (
0x20
) वर्ण हो। - आपके कोड को उन सभी आउटपुट स्ट्रिंग्स को उत्पन्न करना होगा जो ऊपर दिए गए इनपुट नियमों का उपयोग करके बनाए जा सकते हैं।
- आउटपुट का क्रम कार्यान्वयन-परिभाषित है। केवल आवश्यकता यह है कि सभी आउटपुट स्ट्रिंग्स मौजूद हैं।
- यदि एक वैध इनपुट स्ट्रिंग के साथ प्रस्तुत किया जाता है जिसमें कोई परमाणु प्रतीक नहीं होते हैं, तो बस इनपुट स्ट्रिंग को आउटपुट करें।
- यदि इनपुट स्ट्रिंग के साथ प्रस्तुत किया गया है जो ऊपर दिए गए नियमों के अनुसार मान्य नहीं है (शून्य, शून्य वर्ण, जिसमें अवैध वर्ण हैं, आदि) आपका प्रोग्राम कुछ भी कर सकता है (क्रैश, रिक्त आउटपुट, आदि)
- आवर्त सारणी के मिलान के लिए परमाणु प्रतीकों के अलावा आउटपुट केस-असंवेदनशील है।
- मानक खामियों की अनुमति नहीं है।
परीक्षण के मामलों:
Tin Snips
[Ti][N] [Sn][I][P][S]
[Ti][N] [S][Ni][P][S]
[Ti][N] [S][N][I][P][S]
T[In] [Sn][I][P][S]
T[In] [S][Ni][P][S]
T[In] [S][N][I][P][S]
T[I][N] ...
Quack
Q[U][Ac][K]
Q[U]a[C][K]
hehe
[H]e[H]e
[H]e[He]
[He][H]e
[He][He]
Stack Exchange
[S][Ta][C][K] Ex[C][H]a[N][Ge]
[S]t[Ac][K] Ex[C][H]a[N][Ge]
यह कोड गोल्फ है, तो मुझे अपना सबसे छोटा कोड देखने दो!
Q[U][Ac][K]
और Q[U]a[C][K]
। सही?
T[I][N]
नहीं होगी[T][I][N]
क्योंकि टी एक तत्व नहीं है। मेरा सवाल (और संभवतः रस्सर का) है: क्या हमें केवल १ ही देना है। केवल वे ही आउटपुट हैं जहाँ अधिकतम तत्व संख्याएँ घटती हैं? 2. अपव्यय की केवल न्यूनतम राशि? (हाइड्रोजन्स के साथ HeHe यह एक नहीं का जवाब इंगित करता है) 3. सभी आउटपुट जहां मैच पूरी तरह से समाप्त हो जाते हैं? (इस मामलेT[I][N]
में और साथ हीT[In]
मान्य होगा।) मुझे लगता है कि सही व्याख्या है 3.