Longest Palindromic Substring
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.
Example:
Input: "cbbd" Output: "bb"
Solution:
class Solution {
public:
string longestPalindrome(string s) {
string answer = "";
int maxlength = 0;
int length = s.length();
for(int a = 0; a < length; a++)
{
int b = 0;
//奇數的對稱
while(a - b >= 0 && a + b < length && s[a - b] == s[a + b])
{
b++;
}
int c = 0;
//偶數的對稱
while(a - c >= 0 && a + c + 1 < length && s[a - c] == s[a + c + 1])
{
c++;
}
if(2 * b-1 > maxlength)
{
maxlength = 2 * b - 1;
answer = s.substr(a-b+1, 2*b-1);
}
if(2 * c > maxlength)
{
maxlength = 2 * c;
answer = s.substr(a-c+1, 2*c);
}
}
return answer;
}
};