Example #1
0
        public int NumSimilarGroups(string[] strs)
        {
            FindUnion uf = new FindUnion(strs.Length);

            for (var i = 0; i < strs.Length; i++)
            {
                for (int j = i + 1; j < strs.Length; j++)
                {
                    if (uf.Find(i) != uf.Find(j) && IsSimilar(strs[i], strs[j]))
                    {
                        uf.Union(i, j);
                    }
                }
            }

            return(uf.SetCount);
        }