LeetCode每日刷题2-5. 最长回文子串
研究很久才明白回文字串是什么:
是指从左往右,从右往左读起来一样的字符串。
题目:
给你一个字符串 s,找到 s 中最长的回文子串。
示例1:
输入:s = "babad" 输出:"bab" 解释:"aba" 同样是符合题意的答案。
示例2:
输入:s = "cbbd"
输出:"bb"
示例3:
输入:s = "a"
输出:"a"
示例4:
输入:s = "ac"
输出:"a"
考虑到类似“abba”这种中心为两个字符的字符串需要用helpfunction遍历两次
var longestPalindrome = function(s) { //最大回文字符串最小为1 let maxLength = 1; //起始点为0 let start = 0; function expandAroundCenter(left,right){ //三种情况都满足才进行循环 while(left >= 0 && right <= s.length && s[left]===s[right]){ //判断是否要更新最大回文字符数 if(right - left + 1> maxLength){ maxLength = right - left + 1; start = left; } //向左和右不断遍历判断 left--; right++; } } //循环判定两次不同状况的字符串是否有回文字符 for(i=0;i<s.length;i++){ expandAroundCenter(i-1,i+1); expandAroundCenter(i,i+1); } return s.substring(start,start+maxLength); };

浙公网安备 33010602011771号