2.5.4

上次更新:2019-04-17
发现了题解错误/代码缺陷/排版问题?请点这里:如何:提交反馈

解答

先排序,然后用书中的代码进行去重。

static string[] Dedup(string[] a)
{
    if (a.Length == 0)
        return a;

    string[] sorted = new string[a.Length];
    for (int i = 0; i < a.Length; i++)
    {
        sorted[i] = a[i];
    }
    Array.Sort(sorted);
    // sorted = sorted.Distinct().ToArray();
    string[] distinct = new string[sorted.Length];
    distinct[0] = sorted[0];
    int j = 1;
    for (int i = 1; i < sorted.Length; i++)
    {
        if (sorted[i].CompareTo(sorted[i - 1]) != 0)
            distinct[j++] = sorted[i];
    }
    return distinct;
}
上一题 下一题