Http://en.cppreference.com/w/cpp/language/integer_literal के अनुसार , पूर्णांक शाब्दिक एक दशमलव / हेक्स / अष्टक / द्विआधारी शाब्दिक और एक वैकल्पिक पूर्णांक प्रत्यय से मिलकर बनता है, जो स्पष्ट रूप से पूरी तरह से अनावश्यक है, कीमती बाइट्स बेकार है और है इस चुनौती में इस्तेमाल नहीं किया।
एक दशमलव शाब्दिक है a non-zero decimal digit (1, 2, 3, 4, 5, 6, 7, 8, 9), followed by zero or more decimal digits (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
।
एक अष्टक शाब्दिक है the digit zero (0) followed by zero or more octal digits (0, 1, 2, 3, 4, 5, 6, 7)
।
एक हेक्साडेसिमल शाब्दिक है the character sequence 0x or the character sequence 0X followed by one or more hexadecimal digits (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, A, b, B, c, C, d, D, e, E, f, F)
(केस-असंवेदनशीलता पर ध्यान दें abcdefx
)।
एक द्विआधारी शाब्दिक है the character sequence 0b or the character sequence 0B followed by one or more binary digits (0, 1)
।
इसके अतिरिक्त, '
अंक विभाजक के रूप में वैकल्पिक रूप से कुछ s हो सकते हैं । उनका कोई मतलब नहीं है और उन्हें नजरअंदाज किया जा सकता है।
इनपुट
एक स्ट्रिंग जो C ++ 14 पूर्णांक शाब्दिक या उसके चारकोड की एक सरणी का प्रतिनिधित्व करती है।
उत्पादन
बेस 10 में इनपुट स्ट्रिंग द्वारा दर्शाई गई संख्या, एक वैकल्पिक अनुगामी न्यूलाइन के साथ। सही आउटपुट कभी भी 2 * 10 ^ 9 से अधिक नहीं होगा
मानदंड जीतना
GCC योगदानकर्ताओं को ऐसा करने के लिए कोड की 500 से अधिक लाइनों की आवश्यकता होती है, इसलिए हमारा कोड यथासंभव छोटा होना चाहिए!
परीक्षण के मामलों:
0 -> 0
1 -> 1
12345 -> 12345
12345'67890 -> 1234567890
0xFF -> 255
0XfF -> 255
0xAbCdEf -> 11259375
0xa'bCd'eF -> 11259375
0b1111'0000 -> 240
0b0 -> 0
0B1'0 -> 2
0b1 -> 1
00 -> 0
01 -> 1
012345 -> 5349
0'123'4'5 -> 5349
0
जोड़ने के लिए स्ट्रिंग एक अच्छा परीक्षण मामला हो सकता है (यह मेरे हाल के संशोधनों में से एक में बग का पता चला)।