leetcode 5. 最长回文子串 dp
Published on 2022-11-17 23:03 in 暂未分类 with 林动

leetcode 5. 最长回文子串 dp

    public class Solution
    {
    	public String longestPalindrome(String s)
    	{
    		int len=s.length();
    		if(len==1)return s;
    		boolean dp[][]=new boolean[len][len];
    		for(int i=0;i<len;++i)dp[i][i]=true;
    		
    		int maxlen=1;
    		int begin=0;
    		
    		for(int L=2;L<=len;++L)
    		{
    			for(int i=0;i<len;++i)
    			{
    				int j=i+L-1;
    				if(j>=len)break;
    				if(s.charAt(i)==s.charAt(j))
    				{
    					if(L<=3)dp[i][j]=true;
    					else dp[i][j]=dp[i+1][j-1];
    				}
    				else dp[i][j]=false;
    				
    				if(dp[i][j]==true)
    				{
    					if(j-i+1>maxlen)
    					{
    						maxlen=j-i+1;
    						begin=i;
    					}
    				}
    			}
    		}
    		
    		return s.substring(begin, begin+maxlen);
    	}
    }
    
    posted @   林动  阅读(8)  评论(0编辑  收藏  举报
    相关博文:
    阅读排行:
    · 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
    · 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
    · 【自荐】一款简洁、开源的在线白板工具 Drawnix
    · 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
    · Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
    点击右上角即可分享
    微信分享提示