我将使用哪种数据结构根据字母的频率和位置对单词进行排序?

约书亚·佐林格(Joshua Zollinger)

我有一个正在处理的项目,计划同时在java和ActionScript中实现,因此这就是为什么我标记了这两种语言的原因。

为了完成这个项目,我将需要从给定字典中以给定长度创建一组所有单词。然后,在选择字母后,我需要根据两个字母的位置和字母的频率来创建单词的子集。例如,如果集合包含

{this, time, pate, malt, that, teat, tote}

并且用户选择了字母“ t”,我需要将集合分为以下子集:

Subset 1 (t___) = {this, time}
Subset 2 (__t_) = {pate}
Subset 3 (___t) = {malt}
Subset 4 (t__t) = {that, teat}
Subset 5 (t_t_) = {tote}

对于存在的每个子集(请注意,(_t__)不存在,因此未创建任何子集)。

在这种情况下,哪种数据结构是我的最佳选择?我正在为Java和ActionScript进行编程,因此理想情况下,它将是我可以将其用于两者的结构。但是,如果有必要,我没有完全改变语言之间的数据结构。对于我自己的实践,这两个程序将是单独的实现;不需要跨平台功能。

我考虑过的一些事情:

尝试:通常,当我使用一组单词时,我将节点与Trie一起使用。但是,我认为这种方法不可行,因为没有有效/优雅的方法可以根据字母的位置将Trie拆分成单词。例如,对于在第三个位置而不是在其他任何位置具有特定字母的任何内容,遍历trie的效率将非常低下。因此,我认为尝试不会奏效。

数组:最基本的数据结构。简单易用。我可能可以通过将单词集存储为字符串数组来完成此工作,然后对字符串使用charAt()进行一系列比较,以将其拆分为子集。但是,这看起来也不是很优雅,我想可以使用更好的结构。

ArrayLists:与数组类似的问题。无论如何,我不确定List实现是否会有所帮助。

字典/地图:这些的唯一优点是我以前使用过它们。我真的认为它们根本不适合这种情况。

约书亚·佐林格(Joshua Zollinger)

这是我使用的数据结构。

首先,我使用一些HashSet来存储每组单词。集合使它成为可能,因此您不必担心列表中重复的单词而不必担心每个列表的单词数量。

其次,我使用了HashMap>来映射键/值对。

第三,键是通过将每个单词的charArray中的每个字母与猜测的字母进行比较而动态创建的字符串。如果字符是匹配项,我会附加“ 1”,否则附加“ 0”。这给我留下了一个适当长度的键,该键由1和0组成,分别显示每个字符的数量和位置。

为了对单词进行排序,我为每个单词创建了此键。然后,如果键已经存在于映射中,则将其添加到映射到该键的HashSet中。否则,我将使用包含新单词的新HashSet创建一个新的键值对。

这对我的测试样本大小非常有用。在完成其余代码并确保其可缩放之后,我仍然需要为60000+单词词典运行它,但是当我只处理几百个时,它会非常快速地工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我应该使用哪种数据结构进行快速删除/插入和最大(或最小)搜索?

来自分类Dev

我应该使用哪种数据结构来对数据进行排序,其中键可以用于多个条目

来自分类Dev

我应该使用哪种数据结构进行情感分析?

来自分类Dev

我应该使用哪种数据结构进行情感分析?

来自分类Dev

使用哪种数据结构进行O(log n)键和值查找?

来自分类Dev

何时使用哪种数据结构?

来自分类Dev

我应该使用哪种数据结构来模仿Cassandra中的“按计数器排序”?

来自分类Dev

我应该使用哪种数据结构来处理多值数据?

来自分类Dev

哪种数据结构和/或算法适合该问题?

来自分类Dev

我应该使用哪种数据结构从CSV搜索字符串?

来自分类Dev

我应使用哪种数据结构来维护此信息?

来自分类Dev

我应该在 Java 中使用哪种数据结构?

来自分类Dev

哪种数据结构使用这种格式?

来自分类Dev

枚举变量是哪种数据结构?

来自分类Dev

如何根据单词中的频率对字母进行排序?

来自分类Dev

单项生产者-消费者。我可以在Java中使用哪种数据结构?

来自分类Dev

哪种数据结构更适合-堆或排序数组?

来自分类Dev

用于存储1000个客户的哪种数据结构按年龄排序

来自分类Dev

哪种数据结构按插入排序并具有快速的“包含”检查?

来自分类Dev

我应该提供哪种数据结构来处理编译器中的作用域?

来自分类Dev

SQLite内存数据库使用哪种数据结构?

来自分类Dev

哪种数据结构可以比O(n)时间更好地实现随机弹出和推送?

来自分类Dev

哪种数据结构支持快速插入,删除和搜索

来自分类Dev

使用邻接表实现图形表示时要使用哪种数据结构

来自分类Dev

哪种数据结构最适合实现Dictionary?

来自分类Dev

TCL的数组以哪种数据结构实现?

来自分类Dev

哪种数据结构对键值对有效?

来自分类Dev

在Redis中应为通知系统使用哪种数据结构?

来自分类Dev

我应该使用哪种数据类型和方法?

Related 相关文章

  1. 1

    我应该使用哪种数据结构进行快速删除/插入和最大(或最小)搜索?

  2. 2

    我应该使用哪种数据结构来对数据进行排序,其中键可以用于多个条目

  3. 3

    我应该使用哪种数据结构进行情感分析?

  4. 4

    我应该使用哪种数据结构进行情感分析?

  5. 5

    使用哪种数据结构进行O(log n)键和值查找?

  6. 6

    何时使用哪种数据结构?

  7. 7

    我应该使用哪种数据结构来模仿Cassandra中的“按计数器排序”?

  8. 8

    我应该使用哪种数据结构来处理多值数据?

  9. 9

    哪种数据结构和/或算法适合该问题?

  10. 10

    我应该使用哪种数据结构从CSV搜索字符串?

  11. 11

    我应使用哪种数据结构来维护此信息?

  12. 12

    我应该在 Java 中使用哪种数据结构?

  13. 13

    哪种数据结构使用这种格式?

  14. 14

    枚举变量是哪种数据结构?

  15. 15

    如何根据单词中的频率对字母进行排序?

  16. 16

    单项生产者-消费者。我可以在Java中使用哪种数据结构?

  17. 17

    哪种数据结构更适合-堆或排序数组?

  18. 18

    用于存储1000个客户的哪种数据结构按年龄排序

  19. 19

    哪种数据结构按插入排序并具有快速的“包含”检查?

  20. 20

    我应该提供哪种数据结构来处理编译器中的作用域?

  21. 21

    SQLite内存数据库使用哪种数据结构?

  22. 22

    哪种数据结构可以比O(n)时间更好地实现随机弹出和推送?

  23. 23

    哪种数据结构支持快速插入,删除和搜索

  24. 24

    使用邻接表实现图形表示时要使用哪种数据结构

  25. 25

    哪种数据结构最适合实现Dictionary?

  26. 26

    TCL的数组以哪种数据结构实现?

  27. 27

    哪种数据结构对键值对有效?

  28. 28

    在Redis中应为通知系统使用哪种数据结构?

  29. 29

    我应该使用哪种数据类型和方法?

热门标签

归档