LeetCode 5 最长回文子串

101 阅读1分钟

LeetCode 5 最长回文子串

1 分析

从中间往两边走的找回文串方法,回文的两种模式,都走一遍即可找到最大的

    let s1 = palindrome(s, i, i);
    let s2 = palindrome(s, i, i + 1);

2 Code

function palindrome(s: string, l: number, r: number) {
  while(l >= 0 && r < s.length && s[l] === s[r]) {
    l --;
    r ++;
  }
  return s.substring(l + 1, r);
}

function longestPalindrome(s: string): string {
  let res = "";
  for(let i = 0; i < s.length; i ++) {
    let s1 = palindrome(s, i, i);
    let s2 = palindrome(s, i, i + 1);
    res = res.length > s1.length ? res : s1;
    res = res.length > s2.length ? res : s2;
  }

  return res;
};