Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function longestPalindromicSubstring(input) {
- let longest = "";
- let lastChar = '';
- for (let i = 0; i < input.length; i++) {
- const char = input[i];
- const nextChar = input[i + 1]
- let substr = '';
- let j = 0;
- // e.g. "bananas" or "racecar"
- if (lastChar && nextChar && lastChar === nextChar) {
- substr = lastChar + char + nextChar;
- while (input[i - j] && input[i + j] && input[i - j] === input[i + j]) {
- substr = input.slice(i - j, i + j + 1)
- j++;
- }
- }
- // e.g. "millions"
- else if (char && lastChar && char === lastChar) {
- substr = lastChar + char;
- while (input[i - j - 1] && input[i + j] && input[i - j - 1] === input[i + j]) {
- substr = input.slice(i - j - 1, i + j + 1);
- j++;
- }
- }
- if (substr.length > longest.length)
- longest = substr;
- lastChar = char;
- }
- return longest;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement