仿照up写了个java版 import java.util.*; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); // 注意 hasNext 和 hasNextLine 的区别 while (in.hasNext()) { // 注意 while 处理多个 case String input = in.next(); int N = input.length(); if (N < 2) { System.out.println(N); return; } //最长回文子串长度 int max_len = 1; //dp[i][j]表示子串的左端点是i,右端点是j boolean[][] dp = new boolean[N][N]; for (int i = 0; i < N; i++) { dp[i][i] = true; } //子串长度 for (int L = 2; L <= N; L++) { //i左端点,j右端点 int i = 0; int j = i + L - 1; while (i < N && j < N) { // System.out.printf("i=%d,j=%d\n",i,j); char c1 = input.charAt(i); char c2 = input.charAt(j); if (c1 != c2) { dp[i][j] = false; } else { if (L == 2) { dp[i][j] = true; } else { dp[i][j] = dp[i + 1][j - 1]; } } if (dp[i][j] && L > max_len) max_len = L; i++; j = i + L - 1; } } // ArrayUtil.print2DimensionBooeanArray(dp); System.out.println(max_len); } } }
1

相关推荐

10-17 12:16
同济大学 Java
7182oat:快快放弃了然后发给我,然后让我也泡他七天最后再拒掉,狠狠羞辱他一把😋
点赞 评论 收藏
分享
找不到工作死了算了:没事的,雨英,hr肯主动告知结果已经超越大部分hr了
点赞 评论 收藏
分享
牛客网
牛客企业服务