数据结构和算法分析数据结构与算法

Leetcode-5 最长回文子串

2021-10-01  本文已影响0人  itbird01

5. 最长回文子串

解题思路

1.双层for循环,动态规划
2.i、j分别循环,只记录最大值和最大长度
3.使用substring进行字符串截取
4.判断长度是否大于目前result的长度,如果大于,则判断是否为回文字符串(从两边到中间,去判断是否每个字符相等)
5.如果4满足,则更新result

后续需要总结学习的知识点

时间复杂度和空间复杂度需要后续优化


image.png
##解法1
class Solution {
    public static String longestPalindrome(String s) {
        String result = "";
        for (int i = 0; i < s.length(); i++) {
            for (int j = i; j < s.length(); j++) {
                String temp = s.substring(i, j + 1);
                if (temp.length() >= result.length() && isPalindrome(s, i, j)) {
                    result = temp;
                }
            }
        }
        return result;
    }

    public static boolean isPalindrome(String s, int start, int end) {
        for (int i = start, j = end; i <= j; i++, j--) {
            if (s.charAt(i) != s.charAt(j)) {
                return false;
            }
        }
        return true;
    }
}
上一篇 下一篇

猜你喜欢

热点阅读