https://leetcode.com/problems/longest-palindromic-substring/
C++
class Solution {
public:
string longestPalindrome(string s) {
string ret;
int start =0;
int length = 0;
int left = 0;
int right = 0;
for(int i = 0; i < s.length(); ++i)
{
if(i-2>=0 && s[i] == s[i-2])
{
left = i-2;
right = i;
while(left >= 0 && right < s.length())
{
if(s[left] != s[right])
{
break;
}
left--;
right++;
}
left++;
right--;
if(length < right-left)
{
start = left;
length = right - left;
}
}
if(i-1>=0 && s[i] == s[i-1])
{
left = i-1;
right = i;
while(left >= 0 && right < s.length())
{
if(s[left] != s[right])
{
break;
}
left--;
right++;
}
left++;
right--;
if(length < right-left)
{
start = left;
length = right - left;
}
}
else
continue;
}
ret = s.substr(start, length+1);
return ret;
}
};