[LeetCode OJ]- Longest Palindromic Substring

题目: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;

}

你可能感兴趣的:([LeetCode OJ]- Longest Palindromic Substring)