所以我写了一个代码来构造dawg。我想找出一个语言是否存在一个词?经过大量搜索后,我发现最好的方法是使用dawg。 here
public class DawgNode
{
public DawgNode(int id)
{
Id = id;
}
public int Id { get; set; }
public bool Final { get; set; }
public Dictionary<char, DawgNode> Edges { get; set; } = new Dictionary<char, DawgNode>();
public string Str()
{
var arr = new List<string>();
if (Final) arr.Add("1");
else arr.Add("0");
foreach (var e in Edges)
{
arr.Add(e.Key.ToString());
arr.Add(e.Value.Id.ToString());
}
return string.Join("-", arr);
}
}
查找单词是否存在的最佳方式是什么?考虑到我想在React Native应用中实现拼字游戏。 我知道可以最大程度地减少节点数量,但是诀窍是什么。 1-将节点和边保存在单独的文件中?怎么样? 2-每次将大文本转换为dawg并进行搜索? 请帮助