समस्या
हमें एक JavaScript फ़ंक्शन लिखना है जो एक स्ट्रिंग लेता है जो एक दशमलव संख्या को दर्शाती है। हमारा फ़ंक्शन निम्नलिखित नियमों के आधार पर इस दशमलव को बाइनरी में बदलना/एन्कोड करना चाहिए। प्रत्येक अंक d के लिए n का −
- मान लीजिए k, d के बिट्स की संख्या है
- हम अंक 0 को k-1 बार लिखते हैं जिसके बाद अंक 1 आता है
- हम अंक d को बाइनरी स्ट्रिंग के रूप में लिखते हैं, जिसमें सबसे दायां बिट कम से कम महत्वपूर्ण होता है
- अंत में, हम b) और c) के परिणाम को जोड़कर d का कोडिंग प्राप्त करते हैं
अंत में, हम 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