В этой статье я прикреплю ссылку на видео, в котором решаю самую длинную задачу с палиндромной подстрокой в ​​leet code, а также поделюсь кодом.

Код

class Solution {
    /** 
        Longest palindrome substring length 
        is stored in the maxLength variable
        Starting index is stored in the start variable
        Traverse through the given string
        Initialize low = i - 1 and high = i + 1
        Increment high till s[high] == s[i]
        Decrement low till s[low] == s[i]
        Increment high and decrement low till s[low] == s[high]
        maxLength = high - low - 1
        start = low + 1       
    */
    public String longestPalindrome(String s) {
        
        int n = s.length();
        if(n < 2) { // handle single character string
            return s;
        }
        
        // initialize variables
        int maxLength = 1;
        int start = 0;
        int low;
        int high;
        
        for(int i = 0; i < n; i++) {
            low = i - 1;
            high = i + 1;
            
            while(high < n && s.charAt(high) == s.charAt(i)) {
                high++;
            }
            
            while(low >= 0 && s.charAt(low) == s.charAt(i)) {
                low--;
            }
            
            while(low >= 0 && high < n 
                    && s.charAt(low) == s.charAt(high)) {
                low--;
                high++;
            }
            
            int length = high - low - 1;
            if(maxLength < length) {
                maxLength = length;
                start = low + 1;
            }
        }
        return s.substring(start, start + maxLength);
    }
}

Спасибо за чтение, пожалуйста, подпишитесь на мой канал YouTube, чтобы узнать больше о решении проблем Leet Code и расслабляющей музыке.