1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
public class { public String longestPalindrome(String s) { String ans = ""; boolean[][] dp = new boolean[s.length()][s.length()]; for (int j=0; j<s.length(); j++) { for (int i=0; i<=j; i++) { if (((j>i+1 && dp[i+1][j-1]) || j <= i+1 ) && s.charAt(i) == s.charAt(j)) { dp[i][j] = true; if (j-i+1 > ans.length()) { ans = s.substring(i, j+1); } } } } return ans; }
public boolean isPalindrome(String s, int i, int j) { int left = i; int right = j; while (left < right) { if (s.charAt(left) != s.charAt(right) ){ return false; } left ++; right --; } return true; } }
|
近期评论