आसान 0 हल किए गए 0% स्वीकृति

रोमन अंक का मान

एक रोमन अंक को संख्या में बदलें।

आप क्या सीखेंगे

  • डिक्शनरी से प्रतीकों को मानों से जोड़ना
  • IV और XC जैसे घटाने वाले जोड़े संभालना
  • अगले अक्षर को देखते हुए स्ट्रिंग पर चलना

समस्या

एक वैध रोमन अंक को उसके मान में बदलें। प्रतीक हैं I=1, V=5, X=10, L=50, C=100, D=500, M=1000; यदि कोई छोटा प्रतीक किसी बड़े प्रतीक से पहले आता है तो उसे घटाया जाता है (IV = 4, CM = 900)।

roman_to_int(text) को लागू करें।

इनपुट

text: एक वैध रोमन अंक।

आउटपुट

उसका मान लौटाएँ।

सीमाएँ

1 ≤ मान ≤ 3,999

उदाहरण

उदाहरण 1
इनपुट:
text = "XIV"

अपेक्षित आउटपुट:
expected = 14
इनपुट:
std::string text = "XIV";

अपेक्षित आउटपुट:
long long expected = 14;
इनपुट:
string text = "XIV";

अपेक्षित आउटपुट:
long expected = 14;

व्याख्या

X = 10, IV = 4: 14।

उदाहरण 2
इनपुट:
text = "MCMXCIV"

अपेक्षित आउटपुट:
expected = 1994
इनपुट:
std::string text = "MCMXCIV";

अपेक्षित आउटपुट:
long long expected = 1994;
इनपुट:
string text = "MCMXCIV";

अपेक्षित आउटपुट:
long expected = 1994;

व्याख्या

M=1000, CM=900, XC=90, IV=4: 1994।

कैसे हल करें

पहले खुद कोशिश करें, फिर एक-एक करके संकेत खोलें।

संकेत 1

अधिकतर symbols अपनी value जोड़ते हैं, लेकिन कुछ pairs में छोटा symbol बड़े से पहले हो तो subtraction होती है.

संकेत 2

Numeral को left to right process करें और हर symbol की अगला symbol से तुलना करें.

संकेत 3

Last symbol को सही से handle करना न भूलें, क्योंकि उसके बाद कोई follower नहीं होता.

अपेक्षित जटिलता

समय O(n), अतिरिक्त स्थान O(1)

संदर्भ

यह चुनौती CodeUtility के लिए अनुकूलित की गई है। ऊपर दिए गए स्टेटमेंट और सीमाओं का पालन करें।

दूसरों से सीखें

समुदाय समाधान

अभी तक कोई प्रकाशित समाधान नहीं। पहला साझा करने के लिए इस चुनौती को हल करें।