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; } }