5. 最长回文子串

给你一个字符串 s,找到 s 中最长的回文子串。

示例 1:

输入:s = "babad"
输出:"bab"
解释:"aba" 同样是符合题意的答案。
示例 2:

输入:s = "cbbd"
输出:"bb"

提示:

1 <= s.length <= 1000
s 仅由数字和英文字母组成

 

复制代码
 1 /**
 2  *  @param {string} s
 3  *  @return {string}
 4  */
 5 var longestPalindrome = function(s) {
 6     if (s.length < 2) {
 7         return s;
 8     }
 9     let start = 0;
10     let maxLength = 1;
11 
12     function expandAroundCenter(left, right) {
13         while (left >= 0 && right < s.length && s[left] === s[right]) {
14             if (right - left + 1 > maxLength) {
15                 maxLength = right - left + 1;
16                 start = left;
17             }
18             left--;
19             right++;
20         }
21     }
22     for (let i = 0; i < s.length; i++) {
23         expandAroundCenter(i - 1, i + 1);
24         expandAroundCenter(i, i + 1);
25     }
26     return s.substring(start, start + maxLength);
27 };
复制代码

 

posted @   icyyyy  阅读(16)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示