对于我的类项目,我们必须浏览莎士比亚十四行诗并检查每个单词是否在字典中。现在我有两个按字母顺序排列的字符串数组,一个由十四行诗中的单词组成,另一个由字典中的单词组成。我被要求使用合并排序来检查十四行诗中的单词是否存在于字典中。谁能给我一个关于如何实现这个的想法???提前致谢!
最佳答案
这个想法是:
- 对两个数组进行排序(使用合并排序)
- 删除所有重复项
- 同时迭代两个已排序的数组(可以使用合并排序中的合并过程来完成)并检查十四行诗列表中的下一个单词是否等于字典中的下一个单词。如果不存在,则将其删除,并将其标记为“不在字典中”,如果是,则将其标记为“在字典中”,然后继续处理两个列表中的下一个元素
但是,这种方法假设字典中的所有单词都包含在十四行诗中。如果不是这种情况,您必须预先删除这些词。
确实如此;这听起来不像是排序问题。
最好的方法是使用 HashMap
并将所有字典单词放入其中。然后您可以迭代十四行诗,并检查 map 中是否存在。
关于java - 词搜索 : two string arrays in alphabetical order using merge sort,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26666121/