题解 | HJ85#最长回文子串#

最长回文子串

https://www.nowcoder.com/practice/12e081cd10ee4794a2bd70c7d68f5507

import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
//HJ85
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String str = in.nextLine();
        //双指针 一头一尾
        char[] chars = str.toCharArray();
        ArrayList<Integer> list = new ArrayList<>();
        String substring = "";
        for (int i = 0; i < chars.length; i++) {
            for (int j = chars.length - 1; j > i; j--) {
                if (chars[i] == chars[j]) {
                    //判断str.substring(i,j+1)是不是回文串
                    if (j == chars.length - 1) {
                        substring = str.substring(i);
//                        System.out.println(substring);
                    } else {
                        substring = str.substring(i, j + 1);
//                        System.out.println(substring);
                    }
                    if (IsHuiWenSubString(substring)) {
                        int length = substring.length();
                        // System.out.println(substring);
                        list.add(length);
                    };
                }
            }
        }
        // System.out.println(list);
        Integer max = Collections.max(list);
        System.out.println(max);
    }
    //判断一个字符串是否是回文子串
    public static boolean IsHuiWenSubString(String str) {
        StringBuilder stringBuilder = new StringBuilder(str);
        StringBuilder stringBuilderReverse = stringBuilder.reverse();
        String reverse = stringBuilderReverse.toString();
        return str.equals(reverse);
    }
}

双指针i,j一头一尾开始遍历 保证j>i。

全部评论

相关推荐

2024-12-27 13:08
华南理工大学 Java
蝴蝶飞出了潜水钟丿:多看一眼就会💥
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务