zoukankan      html  css  js  c++  java
  • [leedcode 5]Longest Palindromic Substring

    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); 
        }
    }
  • 相关阅读:
    HTTPS
    RPC
    2017.4.19上午
    2017.4.18下午
    2017.4.18上午
    2017.4.17下午
    2017.4.17上午
    2017.4.14下午
    2017.4.14上午
    2017.4.13下午
  • 原文地址:https://www.cnblogs.com/qiaomu/p/4621300.html
Copyright © 2011-2022 走看看