您的位置:首页 > 其它

leetcode-5Longest Palindromic Substring

2015-06-23 21:13 253 查看
区间dp

import  java.util.* ;

public class Solution{

public String longestPalindrome(String s){
int n = s.length() ;
boolean[][] dp = new boolean

;
for(int i = 0 ; i < n ; i++) Arrays.fill(dp[i], false) ;

int start = 0 ,  mxlen = 1 ;
for(int i = 0 ; i < n ; i++) dp[i][i] = true  ;
for(int i = 0 ; i+1 < n ; i++){
if(s.charAt(i) == s.charAt(i+1)){
start = i  ;  mxlen = 2  ;
dp[i][i+1] = true ;
}
}

for(int d = 2 ; d < n ; d++){
for(int i = 0 ; i + d < n ; i++){
int j = i + d ;
if(s.charAt(i) == s.charAt(j)){
dp[i][j] = dp[i+1][j-1] ;
if(dp[i][j] && (j-i+1) > mxlen){
mxlen = j-i+1 ;
start = i ;
}
}
}
}

return s.substring(start , start+mxlen)  ;
}

public static void main(String[] args) {
System.out.println(new Solution().longestPalindrome("abdcdcdd"))  ;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: