首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android应用中的Words

Android应用中的Words
EN

Stack Overflow用户
提问于 2012-05-10 10:46:53
回答 3查看 339关注 0票数 1

我想做一个安卓文字游戏,这需要一个WordsChecker。使用棋子的类似应用有: Word With Friends,Scramble Friends,...你可以转到Google Play,下载并安装应用程序,然后尝试使用它。

目前我没有线索写类似这些应用程序的WordsChecker,我已经研究了一点,但一些解决方案对我来说并不好。

有谁有什么想法吗?你能帮帮我吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-05-10 12:10:09

如果你使用trie数据结构(google it),那么可以高效地找到单词,而存储复数和其他时态的成本可以忽略不计。

trie是从根节点开始的树结构。每个子节点都通过一个字母进行索引,因此到目前为止,每个节点都与单词相对应。每个节点中的标志指示这是否是一个完整的单词。

要找到像"cars“这样的单词,请从根开始,将C链接交叉到一个节点,然后将A链接交叉到下一个节点,然后将R链接交叉到下一个节点。此时,该节点被标记为一个完整的单词(CAR),但是您仍然可以将S链接交叉到表示汽车的节点,该节点也被标记为一个完整的单词。

票数 3
EN

Stack Overflow用户

发布于 2012-05-10 11:26:11

经过一些谷歌搜索后,我找不到这样做的类,但您可以做的是调用一个网站,如dictionary.com,并将单词作为参数的一部分。搜索html并检查该单词是否确实存在。

票数 0
EN

Stack Overflow用户

发布于 2012-05-11 11:58:39

我在java网站上找到了这本字典。我不知道它有多“好”,例如,将它与“官方拼字游戏”单词列表进行比较。

Trie数据结构可能过于夸张了。我自己还没试过呢。(双关语似乎是不可避免的,非常抱歉。)您可以考虑将单词转换为数字形式(不过,字符串的hashCodes可能很好),并将它们存储在一个散列集中。我之所以说哈希集,是因为你真正需要知道的就是成员资格。据我所知,测试列表成员是否存在的最快方法是尝试将其添加到HashSet:如果失败,则它已经是一个成员。如果它成功了,那么它不是一个单词,不要忘记删除它!

在使用Boggle的各个方面时,我使用了这个编程策略,并使用它制作了词频列表,给出了特定的Boggle立方体。

如果有一种结构与你的搜索相关,例如,你知道你将以特定的顺序进行搜索,而不是随机访问,那么像trie这样的更结构化的方法对于优化是很有意义的。但也要考虑到,基于回合的文字游戏几乎不需要出色的性能!(接吻)

投票否决这个问题是多么令人不满啊!当我第一次进入这个主题时,我发现很难理解这个问题,所以我对最初的帖子有一些同情。我给出的问题是+1来抵消这个。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10526893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档