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); 
        }
    }
  • 相关阅读:
    家庭记账本开发记录2
    家庭记账本开发记录1
    构建之法阅读笔记——具体职位、用户和行业篇
    构建之法阅读笔记——团队篇
    js学习17
    js学习15
    js学习14
    js学习13
    js学习12
    js学习11
  • 原文地址:https://www.cnblogs.com/qiaomu/p/4621300.html
Copyright © 2011-2022 走看看