मान लीजिए हमारे पास नंबर 12145 है। हमें एक फंक्शन लिखना है जो नंबर के अंकों को अंग्रेजी अल्फाबेट्स में निम्नलिखित मानदंडों के अनुसार मैप करे। अल्फाबेट्स को 1-आधारित इंडेक्स के अनुसार मैप किया जाना है, जैसे 1 के लिए 'a', 2 के लिए 'b', 3 के लिए 'c' और इसी तरह।
एक नंबर को मैप करने के कई तरीके हो सकते हैं। आइए उपरोक्त नंबर 121415 को उदाहरण के लिए लेते हैं:
इसे इस तरह मैप किया जा सकता है:
12145->1,2,1,4,5->a,b,a,d,e
यह भी हो सकता है:
12145->12,1,4,5->l,a,d,e
यह भी हो सकता है:
12145->12,14,5->l,n,e
और इसी तरह, लेकिन 12145, 1,2,1,45 नहीं हो सकता क्योंकि अल्फाबेट्स में 45 के लिए कोई मैपिंग नहीं है। इसलिए हमारे फंक्शन को अल्फाबेट मैपिंग्स के सभी क्रमपरिवर्तनों का ऐरे वापस करना चाहिए।
इसके लिए कोड:
उदाहरण
const num = 12145; const mapToAlphabets = num => { const numStr = '' + num; let res = []; const shoveElements = (left, right) => { if (!left.length) { res.push(right.map(el => { return (+el + 9).toString(36); }).join('')); return; }; if(+left[0] > 0){ shoveElements(left.slice(1), right.concat(left[0])); }; if(left.length >= 2 && +(left.slice(0, 2)) <= 26){ shoveElements(left.slice(2), right.concat(left.slice(0, 2))); }; }; shoveElements(numStr, []); return res; } console.log(mapToAlphabets(num));आउटपुट
कंसोल में आउटपुट:
[ 'abade', 'abne', 'aude', 'lade', 'lne' ]