JavaScript: самый длинный палиндром в указанной строке
Функция JavaScript: упражнение 27 с решением
Напишите функцию JavaScript, которая возвращает самый длинный палиндром в данной строке.
Примечание: Согласно Википедии «В информатике, самой длинной палиндромной подстрокой или самой длинной проблемой симметричного фактора является проблема поиска непрерывной подстроки максимальной длины данной строки, которая также является палиндромом. Например, самая длинная палиндромная подстрока из бананов» "is" anana ". Самая длинная палиндромная подстрока не гарантируется быть уникальной; например, в строке" abracadabra "нет палиндромной подстроки длиной более трех, но есть две палиндромные подстроки длиной три, а именно: "ака" и "ада".
В некоторых приложениях может потребоваться вернуть все максимальные палиндромные подстроки (то есть все подстроки, которые сами являются палиндромами и не могут быть расширены до более крупных палиндромных подстрок), вместо того, чтобы возвращать только одну подстроку или возвращать максимальную длину палиндромной подстроки.
Иллюстрированная презентация:
Пример решения: -
HTML-код:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Write a JavaScript function that returns the longest palindrome in a given string</title>
</head>
<body>
</body>
</html>
Код JavaScript:
function is_Palindrome(str1) {
var rev = str1.split("").reverse().join("");
return str1 == rev;
}
function longest_palindrome(str1){
var max_length = 0,
maxp = '';
for(var i=0; i < str1.length; i++)
{
var subs = str1.substr(i, str1.length);
for(var j=subs.length; j>=0; j--)
{
var sub_subs_str = subs.substr(0, j);
if (sub_subs_str.length <= 1)
continue;
if (is_Palindrome(sub_subs_str))
{
if (sub_subs_str.length > max_length)
{
max_length = sub_subs_str.length;
maxp = sub_subs_str;
}
}
}
}
return maxp;
}
console.log(longest_palindrome("abracadabra"));
console.log(longest_palindrome("HYTBCABADEFGHABCDEDCBAGHTFYW12345678987654321ZWETYGDE"));
Выход:
аса 12345678987654321
Блок - схема:
Демонстрация в реальном времени:
См. Pen JavaScript - самый длинный палиндром в указанной строковой функции-ex-27 от w3resource ( @ w3resource ) в CodePen .
Улучшите этот пример решения и опубликуйте свой код через Disqus
Предыдущий: Напишите функцию JavaScript, чтобы найти самую длинную подстроку в данной строке без повторяющихся символов.
Далее: Напишите программу на JavaScript для передачи «функции JavaScript» в качестве параметра.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования