हमें एक JavaScript फ़ंक्शन लिखना है जो पहली आर्गुमेंट के रूप में वर्णों की एक स्ट्रिंग, मान लीजिए str, और दूसरी आर्गुमेंट के रूप में एक संख्या, मान लीजिए num, लेता है।
फ़ंक्शन को दी गई स्ट्रिंग str से ठीक num लंबाई के उन सभी पालिंड्रोम स्ट्रिंग्स की संख्या गिननी चाहिए जिन्हें बनाया जा सकता है। फ़ंक्शन को अंत में वह गिनती लौटानी चाहिए।
उदाहरण
यदि इनपुट स्ट्रिंग और संख्या है:
const str = 'ij'; const num = 4;
तो आउटपुट होना चाहिए:
const output = 4;
क्योंकि वे चार संभावित पालिंड्रोम स्ट्रिंग्स हैं:
'iiii', 'jjjj', 'ijji', 'jiij'
दृष्टिकोण:
हम पहले हैश सेट का उपयोग करके दी गई स्ट्रिंग में अद्वितीय अक्षरों की संख्या गिनेंगे। यदि पालिंड्रोम की लंबाई विषम संख्या है, तो मध्य वर्ण के u विकल्प हो सकते हैं जहां u स्ट्रिंग में अद्वितीय वर्णों की संख्या है।
जब num सम होता है, तो हमारे पास निम्नलिखित संभावनाएं होती हैं:
power(u, num/2)
और जब num विषम होता है, तो हमें इस संख्या को u से गुणा करना होगा क्योंकि उस स्थान के लिए हमारे पास 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