समस्या
हमें एक JavaScript फ़ंक्शन लिखना है जो एक स्ट्रिंग, str, को पहला और एकमात्र तर्क के रूप में लेता है।
हमारा फ़ंक्शन स्ट्रिंग str से अधिकतम एक वर्ण हटा सकता है और हमें यह जांचना आवश्यक है कि क्या हम ऐसा करके इसे पालिंड्रोम बना सकते हैं।
उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है
इनपुट
const str = 'dr.awkward';
आउटपुट
const output = true;
आउटपुट व्याख्या
क्योंकि यदि हम स्ट्रिंग से '.' हटाते हैं,
उदाहरण
const str = 'dr.awkward';
const validPalindrome = (str = '') => {
const valid = (left, right) => {
for (let i = left; i <= Math.floor((left + right) / 2); i++) {
if (str[i] !== str[right - (i - left)]) {
return false;
}
}
return true;
};
for (let i = 0; i <= Math.floor(str.length / 2); i++) {
const right = str.length - 1 - i;
if (str[i] !== str[right]) {
return valid(i, right - 1) || valid(i + 1, right);
}
}
return true;
};
console.log(validPalindrome(str));
आउटपुट
true