प्रारूप विधि उल्टा।
Formatस्ट्रिंग क्लास (या समतुल्य, जैसे sprintf) की विधि अधिकांश भाषाओं में उपलब्ध है। यह मूल रूप से एक "प्रारूप" स्ट्रिंग लेता है जिसमें कुछ अतिरिक्त स्वरूपण वाले प्लेसहोल्डर हो सकते हैं, और उन प्लेसहोल्डर्स के बजाय शून्य या अधिक मान डाले जा सकते हैं।
आपका काम अपनी पसंद की भाषा में उलटा फ़ंक्शन लागू करना है।
एपीआई
विधि का नाम होना चाहिए या तो format1या deformat।
इनपुट : 1 पैरामीटर "प्रारूप" स्ट्रिंग होगा, मूल प्रारूप विधि की तरह। 2 पैरामीटर पार्स स्ट्रिंग (नीचे उदाहरण देखें) होगा। किसी अन्य पैरामीटर की आवश्यकता नहीं है और न ही अनुमति है।
आउटपुट : मानों की एक सरणी (या आपकी भाषा-पसंद का समकक्ष) जो प्रारूप में प्लेसहोल्डर्स के साथ संगत रूप से निकाली गई थी।
प्लेसहोल्डर हैं {0}, {1}, {2}, आदि
खराब प्रारूप के मामले में आप एक त्रुटि फेंक सकते हैं, या जो कुछ भी आप चाहते हैं उसे वापस कर सकते हैं।
अमान्य इनपुट के मामले में, आप एक त्रुटि फेंक सकते हैं, या जो कुछ भी आप चाहते हैं उसे वापस कर सकते हैं। अमान्य इनपुट ऐसा है जो String.Format द्वारा एक ही प्रारूप स्ट्रिंग का उपयोग करके उत्पन्न नहीं किया जा सकता है, उदाहरण के लिए '{0}{0}', 'AAB':।
उदाहरण
deformat('{0} {1}', 'hello world') => ['hello', 'world']
deformat('http{0}://', 'https://') => ['s']
deformat('http{0}://', 'http://') => [''] // array of one item which is an empty string
deformat('{0}{1}{0}', 'ABBA') => ['A', 'BB']
अस्पष्टता
अस्पष्टता के मामले में आप किसी भी उपयुक्त उत्तर को वापस कर सकते हैं। उदाहरण के लिए:
deformat('{0} {1}', 'Edsger W. Dijkstra')
// both ['Edsger', 'W. Dijkstra'] and ['Edsger W.', 'Dijkstra'] are applicable.
कुछ और नियम
- इसे आसान बनाने के लिए, वास्तव में स्वरूपण का समर्थन करने की कोई आवश्यकता नहीं है। आप सभी प्रमुख शून्य, दशमलव बिंदु या गोलाई के मुद्दों को भूल सकते हैं। बस स्ट्रिंग के रूप में मान उत्पन्न करते हैं।
- इसे गैर-तुच्छ बनाने के लिए, नियमित अभिव्यक्ति की अनुमति नहीं है ।
- आपको इनपुट में घुंघराले ब्रेसिज़ की देखभाल करने की आवश्यकता नहीं है (अर्थात द्वितीय इनपुट पैरामीटर में कोई
{s या}s नहीं होगा )।
जीतना
यह कोड-गोल्फ है ! (के रूप में पढ़ा जाना चाहिए "यह स्पार्टा है!") सबसे कम लंबाई वाली सही फ़ंक्शन जीत है। मानक खामियों को मना किया जाता है।
['', 'AAAA'], ['A', 'AA'],['AA', '']
deformat('{0}{1}{0}', 'ABBA') => ['', 'ABBA']? यदि ऐसा है, तो एक सस्ता समाधान है जब तक कि प्रत्येक स्ट्रिंग कम से कम दो बार दिखाई न दे।
deformat('{0}_{1}_{0}', 'A_BB_A')?
deformat('{0}{1}{0}', 'ABBA') => ['A', 'BB'], अगर हमें इसके बदले दिया गया तो क्या होगाdeformat('{0}{1}{0}', 'AAAA')?