3 回答
TA贡献1998条经验 获得超6个赞
除了LINQ的特性之外,您还可以使用HashSet.Distinct():
HashSet: 这是一个优化的集合集合。它有助于消除数组中的重复字符串或元素。它是一个散列其内容的集合。
public static string[] NoDuplicate(string[] array)
{
string[] result = new HashSet<string>(array).ToArray();
return result;
}
如果要消除不区分大小写的重复项,可以传递如下IEqualityComparer参数:
使用HashSet:
public static string[] NoDuplicate(string[] array)
{
string[] result = new HashSet<string>(array, StringComparer.OrdinalIgnoreCase)
.ToArray();
return result;
}
使用 LINQ 的Distict功能:
public static string[] NoDuplicate(string[] array)
{
string[] result = array.Distinct(StringComparer.OrdinalIgnoreCase)
.ToArray();
return result;
}
TA贡献1808条经验 获得超4个赞
试试这个:
private static string[] NoDuplicate(string[] inputArray)
{
var result = inputArray.Distinct().ToArray();
return result;
}
TA贡献1785条经验 获得超4个赞
而不是字典创建一个词组。如果重复,则在每个级别保持相同单词的计数。通过这种方式,您可以避免使用太多空间,搜索任何单词 O(log(n)) 会更快,其中 n 是不同单词的数量
public class WordList {
private int sameWord = 0;
String name = "";
WordList [] child = new WordList[26];
public void add( String s, WordList c, int index )
{
sameWord++;
if(index > 0)
{
name += ""+s.charAt(index-1);
}
if(index == s.length())
{
return;
}
if(c.child[s.charAt(index)-'a'] ==null)
{
c.child[s.charAt(index)-'a'] = new WordList();
}
add(s,c.child[s.charAt(index)-'a'],index+1);
}
public static WordList findChar(char c)
{
return child[(int)(c-'a')];
}
}
- 3 回答
- 0 关注
- 205 浏览
添加回答
举报