用于确定单词是否为有效英语单词的算法/数据结构

时间:2017-08-23 16:01:03

标签: algorithm data-structures tree graph-algorithm

我正在设计一个HTML5游戏,要求我验证用户输入的单词是否是有效的英语单词。我知道我可以通过将单词发送到服务器来执行验证,但是,因为我想在用户输入时进行验证,所以服务器端验证不是最佳解决方案。因此,我需要在游戏中执行验证,在用户的浏览器中运行。

对于我来说,验证用户输入的单词的最有效方式是什么,就像用户输入的那样,针对英语中的每个单词?

3 个答案:

答案 0 :(得分:2)

是的,您可以使用数据结构,例如trie,我们在其中创建可搜索单词的树,并在for ( x in myCollection.cars ) { document.getElementById("id1").innerHTML += x + "<br />"; } 时间内找到元素。如果你问自己,为什么trie是一个更好的选择..你会看到每当用户一次输入一个字符时你可以在飞行中逐字逐句地移动并根据你的游戏规则提供快速反馈。

select * from tbl1 Full Outer Join tbl2 on tble1.clm = tble2.clm1;

另外你说服务器端验证是不可能的,但我已经看到他们制作ajax调用验证单词的游戏,当时他们创建了一些弹出屏幕或某些游戏故事或组件的东西让你感觉到它会立即或以某种有趣的方式发生,

答案 1 :(得分:1)

虽然特里是理论上正确的&#34;要使用的数据结构,/ usr / share / dict / words在我的计算机上gzips到1 MB以下。有zlib的纯JS实现,可用于解压缩。二进制搜索算法将花费不到20个调用来查找字典中的任何特定单词,这足以在浏览器中进行交互式使用。

这足以在浏览器中实现这一点。

答案 2 :(得分:1)

这样的任务的一个好算法是Bloom filter。你应该知道,困难的部分是组装一个合适的字典。