読者です 読者をやめる 読者になる 読者になる

日々精進

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

SRM496 Div2 Easy

http://www.topcoder.com/stat?c=problem_statement&pm=11293&rd=14425
珠玉のプログラミングか何かの本でほぼ同じ問題を見た記憶があります。
横にソートした後、UniqしてやればOK。
下記では縦にソートして異なる文字列の数を数えています。
横方向にソートするところ、いったんchar[]にしないとできないんですかね。。

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

public class AnagramFree
{
    public int getMaximumSubset(String[] S)
    {
        for (int i = 0; i < S.Length; i++)
        {
            char[] chr = S[i].ToCharArray();
            Array.Sort(chr);
            S[i] = new String(chr);
        }
        Array.Sort(S);


        int cnt = 1;
        for (int i = 1; i < S.Length; i++)
        {
            if (!S[i].Equals(S[i - 1])) cnt++;
        }
        return cnt;
    }
}