रोमन अंकों की एक स्ट्रिंग को पूर्णांक में बदलने के लिए सबसे छोटा फ़ंक्शन बनाएं ।
प्रत्येक पत्र के नियम विकिपीडिया पृष्ठ पर देखे जा सकते हैं । 1,000 से ऊपर के पत्रों में उनके उच्च मूल्य को इंगित करने के लिए उनके चारों ओर कोष्ठक होंगे।
आवश्यकताएँ:
- रोमन अंकों को 1 से 500,000 में बदलना चाहिए
- एक मिनट से भी कम समय में पूरा करना होगा
- अंतर्निहित कार्यों का उपयोग नहीं करता है जो एक लाभ प्रदान कर सकता है (उदा: एक फ़ंक्शन जो रोमन अंकों को पूर्णांकों में परिवर्तित करता है)
- एक फ़ंक्शन है
फ़ंक्शन को अंशों का समर्थन करने की आवश्यकता नहीं है। किसी भी अमान्य इनपुट को 0 नंबर वापस करना चाहिए।
सबसे छोटा फंक्शन जीतता है। एक टाई के मामले में, सबसे अधिक वोटों के साथ जीत होती है।
परीक्षण के मामलों
इनपुट
III
उत्पादन
3
इनपुट
IIII
उत्पादन
0
इनपुट
XVI
उत्पादन
16
इनपुट
(C)(D)(L)MMI
उत्पादन
452001
मेरे लिए अनुचित का अर्थ है अवैध और इस तरह से वापस आना चाहिए
—
मार्टिन 19:
@ तोप: जब मैं मूल तीसरे परीक्षण मामले को बदल दिया था तब से यह संख्या गलत थी। इसे अनुचित रूपों का समर्थन करने की आवश्यकता नहीं है, क्योंकि इसे अमान्य इनपुट माना जाएगा।
—
केविन ब्राउन
मानक इनपुट (और इस प्रश्न के डुप्लिकेट की कल्पना) अमान्य इनपुट के लिए अपरिभाषित व्यवहार है। चूँकि यह प्रश्न चार साल पुराना है और इसका केवल एक ही उत्तर था, क्या हमें आवश्यकताओं को बदलना चाहिए?
—
lirtosiast
@ केविनब्रोर्न मुझे कोष्ठक पत्रों के लिए स्रोत या स्पष्टीकरण नहीं दिखता है। मुझे लगता है कि आपको codegolf.stackexchange.com/q/16254/43319 से मिलान करने के लिए युक्ति बदलनी चाहिए और फिर वहां से जवाबों को माइग्रेट किया जा सकता है।
—
Adám
(C)(D)(L)MMI
452,001 होगा। आपको अपना मूल्य कैसे मिला? इसके अतिरिक्त, क्या इसे "अनुचित" रूपों (जैसे केIC
बजायXCIX
) का समर्थन करने की आवश्यकता है ?