кодесурса
«JavaScript

JavaScript: самый длинный палиндром в указанной строке

script1adsense2code
script1adsense3code

Функция JavaScript: упражнение 27 с решением

Напишите функцию JavaScript, которая возвращает самый длинный палиндром в данной строке.

Примечание: Согласно Википедии «В информатике, самой длинной палиндромной подстрокой или самой длинной проблемой симметричного фактора является проблема поиска непрерывной подстроки максимальной длины данной строки, которая также является палиндромом. Например, самая длинная палиндромная подстрока из бананов» "is" anana ". Самая длинная палиндромная подстрока не гарантируется быть уникальной; например, в строке" abracadabra "нет палиндромной подстроки длиной более трех, но есть две палиндромные подстроки длиной три, а именно: "ака" и "ада".
В некоторых приложениях может потребоваться вернуть все максимальные палиндромные подстроки (то есть все подстроки, которые сами являются палиндромами и не могут быть расширены до более крупных палиндромных подстрок), вместо того, чтобы возвращать только одну подстроку или возвращать максимальную длину палиндромной подстроки.

Иллюстрированная презентация:

«JavaScript:

Пример решения: -

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

Блок - схема:

«Блок-схема: JavaScript

Демонстрация в реальном времени:

См. Pen JavaScript - самый длинный палиндром в указанной строковой функции-ex-27 от w3resource ( @ w3resource ) в CodePen .


Улучшите этот пример решения и опубликуйте свой код через Disqus

Предыдущий: Напишите функцию JavaScript, чтобы найти самую длинную подстроку в данной строке без повторяющихся символов.
Далее: Напишите программу на JavaScript для передачи «функции JavaScript» в качестве параметра.

Каков уровень сложности этого упражнения?

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code