public class Solution {
public string LongestPalindrome(string s)
{
if(s.Length == 0 ){
return string.Empty;
}
if(s.Length == 1){
return s;
}
var dp = new bool[s.Length, s.Length];
for(var i = 0; i < s.Length; i++)
{
for(var j = 0; j < s.Length; j++)
{
if(i >= j)
{
dp[i,j] = true;
}
else
{
dp[i,j] = false;
}
}
}
var first = 0;
var last = 0;
var maxLen = 0;
for(var i = 1;i < s.Length ; i++){
for(var j = 0;j < s.Length - i ; j++){
if(s[j] != s[i + j]){
dp[j, j + i] = false;
}
else{
dp[j, j + i] = dp[j + 1,j + i - 1];
if(dp[j , j + i] && i + 1 > maxLen){
first = j ;
last = first + i;
maxLen = i + 1;
}
}
}
}
return s.Substring(first , last - first + 1);
}
}LeetCode-- Longest Palindromic Substring
原文:http://blog.csdn.net/lan_liang/article/details/50144631