TopCoder SRM595: LittleElephantAndBallsAgain
全ての部分文字列を調べる。
SubString
の代わりに Skip
とTake
を使うと配列外参照を気にしないで書ける。
public class LittleElephantAndBallsAgain { public int getNumber(string S) { return (from i in Enumerable.Range(0, S.Length) from j in Enumerable.Range(1, S.Length) let substring = S.Skip(i).Take(j) where substring.Distinct().Count() == 1 select S.Length - substring.Count()).Min(); } }