समस्या
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो एक स्ट्रिंग लेता है जो एक दशमलव संख्या का प्रतिनिधित्व करता है।
हमारे फ़ंक्शन को निम्नलिखित नियमों के आधार पर इस दशमलव को बाइनरी में कनवर्ट/एन्कोड करना चाहिए।
n के प्रत्येक अंक d के लिए
- चलो k, d के बिट्स की संख्या है
- हम k-1 को अंक 0 के बाद और उसके बाद अंक 1 का लिखते हैं
- हम अंक d को बाइनरी स्ट्रिंग के रूप में लिखते हैं, जिसमें सबसे दाहिना बिट सबसे कम महत्वपूर्ण होता है
- अंत में, हम d की कोडिंग प्राप्त करने के लिए b) और c) के परिणाम को जोड़ते हैं
अंत में, हम n के अंकों के लिए प्राप्त सभी परिणामों को जोड़ते हैं।
इस प्रकार, कोड 2 के रूप में 0110 और 3 के रूप में 0111
उदाहरण
निम्नलिखित कोड है -
const str = '77338855'; const encodeNumString = (str = '') => { const buildarray = (string = '') => { let n = string.split(''), res = ''; n.forEach(x => { let num = Number(x).toString(2); num = '0'.repeat(num.length -1) + '1' + num; res += num; }); return res; } const arr = []; let res = ""; for (let i = 0; i < 10; i++){ arr.push(buildarray(String(i))); }; while (str.length){ for (let i = 0; i < 10; i++) { if (str.startsWith(arr[i])) { res += String(i); str = str.slice(arr[i].length); break; } } } return res; }; console.log(encodeNumString(str));
आउटपुट
कंसोल आउटपुट निम्नलिखित है -
001111001111011101110001100000011000001101001101