题目:https://leetcode.com/problems/longest-palindromic-substring/description/
给一个字符串,求最长回文串。如:String str2 = "ssadastt" 他的最长回文串为“sadas”
思路:使用两个指针i和j,指向搜索时的回文串的两端。
搜索从尾部开始
public static String longestPalindrome(String s) {
int len = s.length();
boolean dp[][] = new boolean[len][len];
String res = null;
for(int i = len - 1; i >= 0; i--){
for(int j = i; j < len; j++){
dp[i][j] = (s.charAt(i) == s.charAt(j) )&&(j - i < 3 ||dp[i+1][j-1]);
if(dp[i][j] && (res == null ||j - i + 1 > res.length()))
res = s.substring(i, j+1);
}
}
return res;
}