結果

問題 No.765 ukuku 2
ユーザー htensai
提出日時 2019-12-30 22:50:22
言語 Java
(openjdk 23)
結果
TLE  
実行時間 -
コード長 2,255 bytes
コンパイル時間 2,215 ms
コンパイル使用メモリ 77,140 KB
実行使用メモリ 88,036 KB
最終ジャッジ日時 2024-11-15 20:35:09
合計ジャッジ時間 26,252 ms
ジャッジサーバーID
(参考情報)
judge2 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other AC * 45 TLE * 3
権限があれば一括ダウンロードができます

ソースコード

diff #

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        char[] arr = sc.next().toCharArray();
        int length = arr.length;
        int max = 1;
        for (int i = 0; i < length; i++) {
            int left = i;
            int right = i;
            while (left >= 0 && right < length && arr[left] == arr[right]) {
                if (right - left + 1 != length) {
                    max = Math.max(max, right - left + 1);
                }
                left--;
                right++;
            }
            int left2 = left - 1;
            int right2 = right;
            while (left2 >= 0 && right2 < length && arr[left2] == arr[right2]) {
                max = Math.max(max, right2 - left2);
                left2--;
                right2++;
            }
            left2 = left;
            right2 = right + 1;
            while (left2 >= 0 && right2 < length && arr[left2] == arr[right2]) {
                max = Math.max(max, right2 - left2);
                left2--;
                right2++;
            }
            left = i;
            right = i + 1;
            while (left >= 0 && right < length && arr[left] == arr[right]) {
                if (right - left + 1 != length) {
                    max = Math.max(max, right - left + 1);
                }
                left--;
                right++;
            }
            left2 = left - 1;
            right2 = right;
            while (left2 >= 0 && right2 < length && arr[left2] == arr[right2]) {
                max = Math.max(max, right2 - left2);
                left2--;
                right2++;
            }
            left2 = left;
            right2 = right + 1;
            while (left2 >= 0 && right2 < length && arr[left2] == arr[right2]) {
                max = Math.max(max, right2 - left2);
                left2--;
                right2++;
            }
            left = i;
            right = i + 2;
            while (left >= 0 && right < length && arr[left] == arr[right]) {
                max = Math.max(max, right - left);
                left--;
                right++;
            }
           
        }
        System.out.println(max);
    }
    
 }
0