日々精進

新しく学んだことを書き留めていきます

SRM428 Div2 Easy

問題の分析
与えられた文字列の後ろに文字列を追加して回文を作ります。
作成できる最短の回文の長さを求めなさい。
方針a
回文となっているかどうかを調べる範囲を正しくコーディングするのに手間取りました。
ソースコード

using System;
using System.Collections.Generic;
using System.Text;
 
 
public class ThePalindrome
{
    public int find(string s)
    {
        int n = s.Length;
        for (int j = 0; ; j++)
        {
            bool good = true;
            string substr = s.Substring(j, n - j);
            int m = substr.Length;
            for (int i = 0; i < substr.Length / 2; i++)
            {
                if (!s.Substring(i, 1).Equals(s.Substring(m - 1 - i, 1)))
                {
                    good = false;
                    break;
                }
            }
            if (good) return n + j;
        }
    }
}