TCHS09 Elimination Round 2 Easy

問題

ある文字列sを無限に繰り返して列を作る。この無限列と全く同じ列を作り出す、最も短い文字列を求めよ。

元の文字列が繰り返しになってれば削れる。

using System;
using System.Text;
using System.Text.RegularExpressions;
using System.Collections;
using System.Collections.Generic;

public class CyclicSequence {
    public string minimalCycle(string s) {
        int N = s.Length;

        for (int i = 1; i <= N; ++i)
        {
            if (N % i != 0) continue;
            string sub = s.Substring(0, i);
            bool ok = true;
            for (int j = i; j < N; j += i)
                if (s.Substring(j, i) != sub)
                {
                    ok = false;
                    break;
                }
            if (ok)
                return sub;
        }
        return s;
    }
}