首页 > 其他 > 详细

[leedcode 5]Longest Palindromic Substring

时间:2015-07-04 22:13:46      阅读:278      评论:0      收藏:0      [点我收藏+]
public class Solution {
    public String longestPalindrome(String s) {
        //本题是动态规划思想,构造一个数组pal[i][j],表示从i到j是否为一个回文,
        //pal[i][j]=true;if i=j;
        //pal[i][j]=true 当  s[i]==s[j]并且j-i=1;
        //pal[i][j]=true 当  j>i+1,s[i]==s[j]并且pal[i+1][j-1]=true;
        int start=0;
        int end=0;
        int maxLen=0;
        int len=s.length();
       boolean [][] pal=new boolean[len][len];
       for(int i=0;i<len;i++){
           for(int j=0;j<len;j++){
               pal[i][j]=false;
           }
       }
       for(int j=0;j<len;j++){
           //pal[j][j]=true;
         for(int i=0;i<=j;i++){
            
             /*if(i==j-1)pal[i][j]=s.charAt(i)==s.charAt(j);
             if(i<j-1){
                if(s.charAt(i)==s.charAt(j)&&pal[i+1][j-1])
                   pal[i][j]=true;
             }*/
             pal[i][j]=(s.charAt(i)==s.charAt(j)&&((j-i<2)||pal[i+1][j-1]));//次判断特别简介,利用了&&和||短路规则
            
            if(pal[i][j]&&maxLen<j-i+1){
                 maxLen=j-i+1;
                 start=i;
                 end=j;
                }
                
            }
         }
       
       
      return s.substring(start,end+1); 
    }
}

 

[leedcode 5]Longest Palindromic Substring

原文:http://www.cnblogs.com/qiaomu/p/4621300.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!