यूनीरी नंबर आम तौर पर केवल नॉनजेटिव पूर्णांकों का प्रतिनिधित्व करते हैं, लेकिन हम उन्हें निम्नानुसार सभी पूर्णांकों का प्रतिनिधित्व करने के लिए बढ़ा सकते हैं:
- एक सकारात्मक पूर्णांक N को N के रूप में दर्शाया गया है
1
:5 -> 11111
- एक नकारात्मक पूर्णांक -N को
0
N के द्वारा अनुसरण किया जाता है1
:-5 -> 011111
- शून्य का प्रतिनिधित्व किया जाता है
0
यदि हम 0
विभाजक के रूप में उपयोग करते हैं तो हम इन नंबरों की एक सूची का प्रतिनिधित्व कर सकते हैं :
3,-2,0,1
111,011,0,1
111 0 011 0 0 0 1
11100110001
आपका कार्य: एक ऐसी संख्या पर हस्ताक्षर किए गए यूनिरी नंबर का प्रतिनिधित्व करने वाला एक स्ट्रिंग लें, और इसे दशमलव संख्याओं की सूची में अनुवाद करें।
विवरण
आप मान सकते हैं कि इनपुट हस्ताक्षरित यूरी संख्या की पूरी सूची है। विशेष रूप से, आपके प्रोग्राम को 1) खाली इनपुट या 2) इनपुट को संभालना नहीं होगा जो एक विभाजक के साथ समाप्त होता है।
आप मान सकते हैं कि प्रत्येक संख्या का परिमाण 127 से अधिक नहीं होगा। अधिकतम आकार के तार या सूचियों वाली भाषाओं के लिए, आप मान सकते हैं कि इनपुट और आउटपुट आपकी भाषा के डेटा संरचनाओं में फिट होंगे, लेकिन आपके एल्गोरिथ्म को सैद्धांतिक रूप से एक सूची की सूची के लिए काम करना चाहिए कुछ भी आकार।
आपका कार्यक्रम या फ़ंक्शन किसी भी मानक तरीके से I / O प्रदर्शन कर सकता है । इनपुट एक स्ट्रिंग या पात्रों की सूची, एकल-वर्ण स्ट्रिंग्स, पूर्णांक या बूलियन हो सकता है। आप प्रतिनिधित्व करने के लिए किसी भी दो वर्णों का उपयोग कर सकते हैं 1
और 0
; यदि आप उपयोग नहीं करते हैं 1
और 0
, कृपया निर्दिष्ट करें कि आप किन वर्णों का उपयोग कर रहे हैं।
किसी भी उचित सूची प्रारूप में आउटपुट दशमलव संख्या होना चाहिए (विशेष रूप से, संख्याओं के बीच किसी प्रकार का विभाजक होना चाहिए)। ऋणात्मक संख्याओं को ऋण चिह्न के साथ इंगित किया जाना चाहिए, हालांकि यदि आपकी भाषा में नकारात्मक पूर्णांकों के लिए एक अलग प्रारूप है, तो मैं इसे भी स्वीकार करूंगा। शून्य को आउटपुट में 0
या के रूप में दर्शाया जा सकता है -0
।
परीक्षण के मामलों
1 -> 1
0 -> 0 (or -0, and similarly for the other test cases)
011 -> -2
1101 -> 2,1
1100 -> 2,0
11001 -> 2,-1
110001 -> 2,0,1
11100110001 -> 3,-2,0,1
00000001 -> 0,0,0,-1
01111011111111001111111111111110111111111111111100111111111111111111111110111111111111111111111111111111111111111111 -> -4,8,-15,16,-23,42
01111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 -> -127
0
) और नकारात्मक संकेत उपसर्ग ( 0
) समान हैं, हालांकि यह अभी भी अस्पष्ट है, क्योंकि आप एक संख्या के बीच में नकारात्मक संकेत नहीं कर सकते हैं ( 182--693-1
एक संख्या है? नहीं? और न 1111011000101111
ही सटीक कारण के लिए है)।
'0's
, यह तकनीकी रूप से एकात्मक नहीं है। हालांकि अच्छी चुनौती!