मान लीजिए कि हमारे पास संख्या 12145 है। हमें एक फ़ंक्शन लिखना है जो निम्नलिखित मानदंडों के अनुसार संख्या के अंकों को अंग्रेजी वर्णमाला में मैप करता है। अक्षरों को 1 आधारित सूचकांक के अनुसार मैप किया जाना है, जैसे 1 के लिए 'ए' और 3 के लिए 2 'सी' के लिए 'बी' इत्यादि।
किसी संख्या को मैप करने के कई तरीके हो सकते हैं। आइए उदाहरण के लिए उपरोक्त संख्या 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' ]