【问题标题】:Longest Palindromic Substring using expandfromcenter approach使用 expandfromcenter 方法的最长回文子串
【发布时间】:2022-08-04 19:15:30
【问题描述】:

我正在尝试做 Leetcode最长回文子串使用 expandfromCentre 方法,但不是像大多数解决方案那样返回函数中的长度,而是尝试返回字符串本身。我认为它应该可以工作......我不知道是什么导致了错误。

class Solution {
    public String longestPalindrome(String s) {
        int n = s.length();
        int maxLength = 1;
        
        String res = Character.toString(s.charAt(0));
        
        int start=0; int end=0;
        
        for(int i=0; i<n; i++){
            String s1 = expandFromCentre(s, i, i); // aba            
            String s2 = expandFromCentre(s, i, i+1);  //abba
            
            if(s1.length()>=s2.length()){
                res = s1;
            }
            else{
                res = s2;
            }
        
        }                
        return res;
        
    }
    
    static String expandFromCentre(String s, int left, int right){
        int n = s.length();
        
        while(left>=0 && right<n && s.charAt(left)==s.charAt(right) ){
            left--;
            right++;
        }
   
        return s.substring(left+1, right);
        
    }
}

    标签: java string cp dsa


    【解决方案1】:

    问题:

    if(s1.length()>=s2.length()){
       res = s1;
    }else{
       res = s2;
    }
    

    问题在于上面的 sn-p。您将其中一个值分配给res,无论它是否会给您最长回文候选或不。换句话说,您每次都覆盖res 而无需额外检查它的长度,因为我们需要找到最长.

    解决方案:

    您可以执行以下操作来修复它:

    public String longestPalindrome(String s) {        
        String res = "";    
        for(int i = 0; i < s.length(); i++){
            String s1 = expandFromCentre(s, i, i); // aba            
            String s2 = expandFromCentre(s, i, i+1);  //abba
            
            if(res.length() < s1.length()){
                res = s1;
            }
            
            if(res.length() < s2.length()){
                res = s2;
            }        
        }                
        return res;        
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-10
      • 2018-11-23
      • 1970-01-01
      • 2021-05-15
      • 1970-01-01
      • 1970-01-01
      • 2015-07-09
      相关资源
      最近更新 更多