如何在D中查找字符串数组中的重复项?

时间:2015-02-16 17:01:12

标签: arrays duplicates d duplicate-removal

如果字符串有一些重复,我有数组。找到所有这些的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

两个选项:

  1. 对数组进行排序。然后,重复的字符串将相互跟随:

    arr.sort();
    foreach (i; 0..arr.length-1)
        if (arr[i] == arr[i-1])
            ....
    

    另见std.algorithm.uniq

  2. 使用关联数组(hashmap):

    bool[string] seen;
    foreach (s; arr)
        if (s !in seen)
            seen[s] = true;
        else
            ...