हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता है जो वर्णों की एक स्ट्रिंग को पहले तर्क के रूप में लेता है, जैसे कि str, और एक संख्या, जैसे num, दूसरे तर्क के रूप में।
फ़ंक्शन को पैलिंड्रोम स्ट्रिंग्स की संख्या की गणना करनी चाहिए, बिल्कुल लंबाई की संख्या को दिए गए स्ट्रिंग स्ट्र से बनाया जा सकता है। फ़ंक्शन को अंततः गिनती वापस करनी चाहिए।
उदाहरण के लिए -
यदि इनपुट स्ट्रिंग और संख्या है -
const str = 'ij'; const num = 4;
तब आउटपुट होना चाहिए -
const output = 4;
क्योंकि वे चार संभावित पैलिंड्रोम तार हैं -
'iiii', 'jjjj', 'ijji', 'jiij'
दृष्टिकोण:
हम पहले हैश सेट का उपयोग करके दिए गए स्ट्रिंग में अद्वितीय अक्षरों की संख्या की गणना करेंगे। यदि पैलिंड्रोम की लंबाई एक विषम संख्या है, तो मध्य वर्ण में आपके विकल्प हो सकते हैं जहां आप स्ट्रिंग में अद्वितीय वर्णों की संख्या है।
जब संख्या सम होती है, तो हमारे पास निम्नलिखित संभावनाएं होती हैं -
power(u, num/2)
और जब संख्या विषम हो, तो हमें इस संख्या को u से गुणा करना होगा क्योंकि हमारे पास उस स्थिति के लिए आपके पास विकल्प हैं।
उदाहरण
निम्नलिखित कोड है -
const str = 'ij'; const num = 4; const findValidPalindromes = (str = '', num = 1) => { const set = new Set(); for(let i = 0; i < str.length; i++){ const el = str[i]; set.add(el); }; const u = set.size; if(num & 1){ return Math.pow(u, num/2) * u; }else{ return Math.pow(u, num/2); }; }; console.log(findValidPalindromes(str, num));
आउटपुट
कंसोल आउटपुट निम्नलिखित है -
4