5. 最长回文子串(Java) Leecode

2022/3/1 20:51:26

本文主要是介绍5. 最长回文子串(Java) Leecode,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

在这里插入图片描述
先复习下简单的回文数。
利用反转数字。

回文数

解题思路:

不同之处在于,对于回文子串,反转的方式会出现错误。

方法:中心扩散法双指针

class Solution {
    public String longestPalindrome(String s) {

        String res = "";

        for(int i = 0; i < s.length(); i++){
        
        	//考虑回文长度为奇数和偶数的情况
            String s1 = Palindrome(s, i ,i);
            String s2 = Palindrome(s, i, i+1);
			//返回最长的回文串
            res = res.length() > s1.length() ? res : s1;
            res = res.length() > s2.length() ? res : s2;
        }

        return res;
    }

    public String Palindrome(String s, int l, int r){
		//双指针从中间往两边扩散
        while(l >= 0 && r < s.length() && s.charAt(l) == s.charAt(r)){
            l--;
            r++;
        }
        return s.substring(l+1, r);
    }
}


这篇关于5. 最长回文子串(Java) Leecode的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程