题解 | #最长回文子串#

最长回文子串

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

import java.util.*;

public class Main {
    static ArrayList<String> list;

    public static void main(String[] args) {
        list = new ArrayList<>();
        Scanner in = new Scanner(System.in);
        String input = in.next();
        int length = input.length();
        for (int i = 0; i < length; i++) {
            for (int j = length; j > i; j--) {
                String substring = input.substring(i, j);
                if (check(substring)) {
                    list.add(substring);
                }
            }
        }
        list.sort((s1, s2) -> (s2.length() - s1.length()));
        System.out.println(list.get(0).length());
    }

    private static boolean check(String s) {
        int length = s.length();
        for (int i = 0; i < length && 2 * i < length; i++) {
            if (s.charAt(i) != s.charAt(length - 1 - i)) {
                return false;
            }
        }
        return true;
    }
}

解题思路:

1, 对字符串的各个子字符串进行遍历, 并检测该子串是否是一个回文串;

2, 如果是, 则将其放入最终结果的集合中;

3, 遍历完成后, 从结果集中找到最长字符串长度并输出

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务