5. 最长回文子串

稳健医用外科口罩 一次性医用口罩YY标准3层防护 过滤细菌独立装无菌款成人儿童尺寸外科口罩 成人外科 50袋/盒*1盒 黑色 >> 限时秒杀¥53.00

题目:https://leetcode-cn.com/problems/longest-palindromic-substring/submissions/

代码:

class Solution {
    public String longestPalindrome(String s) {
        int length = s.length();
        String res = "";
        String temp;
        for (int i=0;i<length;i++){
            for (int j=i+res.length();j<length;j++){
                temp = s.substring(i, j+1);
                if (isPalindrome(temp) && temp.length()>res.length()) {
                    res = temp;
                }
            }
        }
        return res;
    }

    /**
     * 是否是回文字符串
     * @param s
     * @return
     */
    public boolean isPalindrome(String s){
        int length = s.length();
        for (int i = 0; i < length; i++) {
            if (s.charAt(i) != s.charAt(length - 1 - i)) {
                return false;
            }
        }
        return true;
    }
}

思路:暴力破解的办法,不过速度比较慢比不上其他大佬写的。

先定义一个判断是否是回文字符串的函数isPalindrome,方法就是头尾依次比较,只要碰到一个字符串不一样就返回false,全部检查完毕则返回true;然后对s的所有字串进行遍历,用一个变量res来记录当前找到的最长字串。这里每次遍历的j的起点我使用了i+res.length原因是,如果我当前已经找到一个长度为5的回文字串,那么我继续找的时候只需要找长度为5以上的字符串就行了。

富光 悠乐超轻时尚保温杯女水杯弹跳盖杯子316不锈钢包包杯便携式可爱 学生情侣支持刻字团购定制 圣诞红350ML(圣诞创意礼品限量款) >> 限时秒杀¥69.00

觉得内容还不错?打赏个钢镚鼓励鼓励!!👍