Максимально возможная палиндроми c подстрока данной строки в JavaScript - PullRequest
0 голосов
/ 11 марта 2020

Это вопрос интервью, который мне было предложено написать. Временная сложность должна быть небольшой. Я не мог написать правильное решение для этой проблемы.

Вопрос: Максимально возможный палиндроми c подстрока данной строки в JavaScript

1 Ответ

1 голос
/ 11 марта 2020

Пожалуйста go через следующий код:

var longestPalindrome = function(string) {

  var length = string.length;
  var result = "";

  var centeredPalindrome = function(left, right) {
    while (left >= 0 && right < length && string[left] === string[right]) {
      //expand in each direction.
      left--;
      right++;
    }

    return string.slice(left + 1, right);
  };

  for (var i = 0; i < length - 1; i++) {
    var oddPal = centeredPalindrome(i, i + 1);

    var evenPal = centeredPalindrome(i, i);

    if (oddPal.length > 1)
      console.log("oddPal: " + oddPal);
    if (evenPal.length > 1)
      console.log("evenPal: " + evenPal);

    if (oddPal.length > result.length)
      result = oddPal;
    if (evenPal.length > result.length)
      result = evenPal;
  }
  return "the palindrome is: " + result + " and its length is: " + result.length;
};

console.log(
  longestPalindrome("nan noon is redder")
);

Кредиты: @Paul Roub

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...