結果
問題 | No.273 回文分解 |
ユーザー |
![]() |
提出日時 | 2017-01-12 09:52:28 |
言語 | C#(csc) (csc 3.9.0) |
結果 |
AC
|
実行時間 | 27 ms / 2,000 ms |
コード長 | 1,948 bytes |
コンパイル時間 | 968 ms |
コンパイル使用メモリ | 111,420 KB |
実行使用メモリ | 26,008 KB |
最終ジャッジ日時 | 2024-06-25 13:48:19 |
合計ジャッジ時間 | 3,100 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 32 |
コンパイルメッセージ
Microsoft (R) Visual C# Compiler version 3.9.0-6.21124.20 (db94f4cc) Copyright (C) Microsoft Corporation. All rights reserved.
ソースコード
using System;using System.Collections;using System.Collections.Generic;using System.Collections.Specialized;using System.Text;using System.Text.RegularExpressions;using System.Linq;using System.IO;class Program{static private Magatro M = new Magatro();static private void Main(string[]args){M.Scan();M.Solve();}}public class Scanner{private string[] S;private int Index;private char Separator;public Scanner(char separator = ' '){Index = 0;Separator = separator;}private string[] Line(){return Console.ReadLine().Split(Separator);}public string Next(){string result;if (S == null || Index >= S.Length){S = Line();Index = 0;}result = S[Index];Index++;return result;}public int NextInt(){return int.Parse(Next());}public double NextDouble(){return double.Parse(Next());}public long NextLong(){return long.Parse(Next());}}public class Magatro{private string S;public void Scan(){Scanner sc = new Scanner();S = sc.Next();}public void Solve(){int ans = 1;for(int left = 0; left < S.Length-1; left++){for(int right = left+1; right < S.Length; right++){if (Kaibun(left, right)){ans = Math.Max(ans, right - left + 1);}}}Console.WriteLine(ans);}private bool Kaibun(int left ,int right){if (left == 0 && right == S.Length - 1) return false;int loop = (right - left+1) / 2;for(int i = 0; i < loop; i++){if (S[left + i] != S[right - i]) return false;}return true;}}