回文串最大长度

1)lettcode题目:

Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.

Example:

Input: "babad"

Output: "bab"

Note: "aba" is also a valid answer.
class Solution {
public:
//以每个字符为中心,向左右拓展,找最大回文串
string expandAroundCenter(string s , int c1, int c2){ int l=c1, r=c2; int n=s.length(); while(l>=0&&r<n&&s[l]==s[r]){ l--; r++; } return s.substr(l+1,r-l-1); } string longestPalindrome(string s) { int n=s.length(); if(n==0) return ""; string longest=s.substr(0,1); for(int i=0;i<n-1;i++){ string p1=expandAroundCenter(s,i,i); if(p1.length()>longest.length()) longest=p1; string p2=expandAroundCenter(s,i,i+1); if(p2.length()>longest.length()) longest=p2; } return longest; } };


原文地址:https://www.cnblogs.com/bananaa/p/8067757.html