题解 | #最长回文子串#
最长回文子串
http://www.nowcoder.com/practice/b4525d1d84934cf280439aeecc36f4af
class Solution { public: int getLongestPalindrome(string A, int n) { // write code here int m = A.size(); int maxlen = 1; if (m < 2) { return 1; } vector<vector<bool>> dp(m, vector<bool> (m)); for(int i=0; i<m;i++){ dp[i][i] = true; } for (int L = 2; L <= m; L++){ for(int i = 0; i < n; i++){ int j = L + i -1; if (j>=n){ break; } if (A[i] != A[j]){ dp[i][j] = false; } else { if (j - i<3){ dp[i][j] = true; } else{ dp[i][j] = dp[i+1][j-1]; } } if(dp[i][j] && j-i+1 > maxlen){ maxlen = j-i+1; } } } return maxlen; } };