鱼C论坛

 找回密码
 立即注册
查看: 1832|回复: 0

[学习笔记] leetcode 5. Longest Palindromic Substring

[复制链接]
发表于 2019-8-29 12:50:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 Seawolf 于 2019-8-31 09:54 编辑
Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.

Example 1:

Input: "babad"
Output: "bab"
Note: "aba" is also a valid answer.
Example 2:

Input: "cbbd"
Output: "bb"

Dp
class Solution {
    
    public String longestPalindrome(String s) {
        
        if(s.length() == 0) return s;
        
        int len = s.length();
        
        int max = 0;
        
        String res = "";
        
        boolean dp[][] = new boolean[len][len];
        
        for(int j = 0; j< len; j++){
            
            for(int i = 0 ; i <= j; i++){
                
                dp[i][j] = s.charAt(i)== s.charAt(j) && (j - i <= 2 || dp[i+1][j-1]);
                    
                
                if(dp[i][j]){
                    
                    
                    if(j - i + 1 > max){
                    
                        max = j - i + 1;
                    
                        res = s.substring(i,j+1);
                }
                    
                }
               
                
            }
            
            
        }
        
        return res;
 
}

}

class Solution {
    
    String res = "";
    
    public String longestPalindrome(String s) {
        
        if(s == null || s.length() == 0) return s;
        
        int len = s.length();
        
        for(int i = 0; i< len; i++){
            
            help(s,i,i);
            help(s,i,i+1);
        }
        
        return res;
 
}
    
    public void help(String s, int left, int right){
        
        while(left >= 0 && right< s.length() && s.charAt(left) == s.charAt(right)){
            
            left --;
            right++;
        }
        
        String cur = s.substring(left+1, right);
        
        if(cur.length() > res.length()){
            
            res = cur;
        }
    }
    
}

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-23 10:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表