Функция SingleCharacterPalindrome
Ответ:
function isPalindrome(str) {
return str === str.split("").reverse().join("");
}
function SingleCharacterPalindrome(str) {
if (isPalindrome(str)) {
return "OK";
}
for (let i = 0; i < str.length; i++) {
if (isPalindrome(str.slice(0, i) + str.slice(i + 1))) {
return "remove one";
}
}
return "not possible";
}
Объяснение:
Для начала создадим вспомогательную функцию isPalindrome , которая принимает строку и сравнивает её с развёрнутой версией самой себя. Далее в основной нашей функции проверяем, является ли входная строка палиндромом. Если да, то возвращаем "OK" . Затем в цикле проходимся по каждой букве, с помощью метода slice удаляем её и проверяем, является ли палиндромом получившаяся строка. Если да - возвращаем "remove one", если ни разу не получилось, то возвращаем "not possible".
Код для проверки:
function isPalindrome(str) {
return str === str.split("").reverse().join("");
}
function SingleCharacterPalindrome(str) {
if (isPalindrome(str)) {
return "OK";
}
for (let i = 0; i < str.length; i++) {
if (isPalindrome(str.slice(0, i) + str.slice(i + 1))) {
return "remove one";
}
}
return "not possible";
}
console.log(SingleCharacterPalindrome("abba")); // "OK"
console.log(SingleCharacterPalindrome("abbaa")); // "remove one"
console.log(SingleCharacterPalindrome("abbaab")); // "not possible"
console.log(SingleCharacterPalindrome("madmam")); // "remove one"
console.log(SingleCharacterPalindrome("raydarm")); // "not possible"
console.log(SingleCharacterPalindrome("hannah")); // "OK"