結果

問題 No.273 回文分解
ユーザー Grenache
提出日時 2015-08-28 22:41:08
言語 Java11
(openjdk 11.0.6)
結果
AC  
実行時間 124 ms
コード長 882 Byte
コンパイル時間 3,644 ms
使用メモリ 34,236 KB
最終ジャッジ日時 2020-01-17 08:45:33

テストケース

テストケース表示
入力 結果 実行時間
使用メモリ
99_system_test1.txt AC 116 ms
34,068 KB
99_system_test2.txt AC 120 ms
33,624 KB
99_system_test3.txt AC 116 ms
33,692 KB
sample1.txt AC 116 ms
33,796 KB
sample2.txt AC 112 ms
33,948 KB
sample3.txt AC 120 ms
33,800 KB
system_test1.txt AC 116 ms
33,640 KB
system_test2.txt AC 120 ms
33,896 KB
system_test3.txt AC 116 ms
33,820 KB
system_test4.txt AC 116 ms
34,236 KB
system_test5.txt AC 116 ms
33,900 KB
system_test6.txt AC 116 ms
34,056 KB
system_test7.txt AC 116 ms
33,644 KB
system_test8.txt AC 116 ms
33,764 KB
system_test9.txt AC 120 ms
34,068 KB
test1.txt AC 124 ms
33,804 KB
test2.txt AC 116 ms
33,900 KB
test3.txt AC 116 ms
33,608 KB
test4.txt AC 116 ms
34,048 KB
test5.txt AC 116 ms
33,908 KB
test6.txt AC 116 ms
34,056 KB
test7.txt AC 116 ms
33,640 KB
test8.txt AC 116 ms
33,804 KB
test9.txt AC 116 ms
33,804 KB
test10.txt AC 116 ms
33,900 KB
test11.txt AC 116 ms
33,888 KB
test12.txt AC 120 ms
33,904 KB
test13.txt AC 120 ms
34,092 KB
test14.txt AC 116 ms
33,904 KB
test15.txt AC 116 ms
33,868 KB
test16.txt AC 120 ms
33,788 KB
test17.txt AC 116 ms
33,896 KB
test18.txt AC 116 ms
33,784 KB
test19.txt AC 116 ms
33,644 KB
test20.txt AC 116 ms
33,960 KB
テストケース一括ダウンロード

ソースコード

diff #
import java.util.Scanner;


public class Main_yukicoder273 {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        char[] s = sc.next().toCharArray();
        int n = s.length;
        int max = 1;
        for (int i = 0; i < n; i++) {
        	for (int j = i + 1; j < n - 1; j++) {
        		max = Math.max(max, check(s, i, j));
        	}
        }
        for (int i = 1; i < n; i++) {
        	for (int j = i + 1; j < n; j++) {
        		max = Math.max(max, check(s, i, j));
        	}
        }

        System.out.println(max);

        sc.close();
    }

	private static int check(char[] s, int i, int j) {
		int n = (j - i + 1) / 2;
		boolean flag = true;
		for (int k = 0; k < n; k++) {
			if (s[i + k] != s[j - k]) {
				flag = false;
				break;
			}
		}
		
		if (flag) {
			return j - i + 1;
		} else {
			return 0;
		}
	}
}
0