C♯の勉強

C♯4.0 で TopCoder の過去問を解きます。

TopCoder SRM609: MagicalStringDiv1

任意の切れ目で、2つの文字列に分割して、左側の '>' の個数と右側の '<' の個数を見るようにすると実装が楽。

public class MagicalStringDiv1 {
    public int getLongest(string S) {
        int n = S.Length;
        int ans = 0;
        for (int i = 0; i < n; i++) {
            var left = S.Take(i).Count(c => c == '>');
            var right = S.Skip(i).Count(c => c == '<');
            ans = Math.Max(ans, Math.Min(left, right));
        }
        return ans * 2;
    }
}