Algorithm 跨列表打印唯一未重复单词的算法 在一个列表中,单词被排序 我想删除列表中重复的单词并打印出来 按顺序 如果单词在同一列表中重复,则其有效 在上述情况下,它应该打印
Algorithm 跨列表打印唯一未重复单词的算法 在一个列表中,单词被排序 我想删除列表中重复的单词并打印出来 按顺序 如果单词在同一列表中重复,则其有效 在上述情况下,它应该打印,algorithm,Algorithm,aaa-->ccc-->ccc-->eee-->fff-->glk-->hkp-->lmn-->xyxz 在这种情况下,ccc在同一个列表中,因此它将被打印,并且bbb和ddd将被删除,因为它跨越了列表 我不是在寻找代码来寻找更好的方法来解决这个问题。我试着搜索了3个小时,所以我只是想知道方法 获取结果的空列表 获取指向3个排序列表开头的3个指针(或索引) 比较三个指针指向的单词,找出最小的单词并将其添加到结果列表中 移动三个指针中的每一个,直到指向的单词大于最后添加的结果 这样做(3.和4.)
aaa-->ccc-->ccc-->eee-->fff-->glk-->hkp-->lmn-->xyxz
在这种情况下,ccc
在同一个列表中,因此它将被打印,并且bbb
和ddd
将被删除,因为它跨越了列表
我不是在寻找代码来寻找更好的方法来解决这个问题。我试着搜索了3个小时,所以我只是想知道方法
对于每个列表,制作列表的副本并将列表存储在集合中,以删除同一列表中的重复字符串
list1 -->aaa,bbb,ddd,xyxz,...
list2-->bbb,ccc,ccc,glk,hkp,..
list3> ddd,eee,ffff,lmn,..
(此步骤用于构建以下频率表,如果您有其他方法构建该表,则可以跳过此步骤)
然后使用hashtable生成一个频率表,将字符串s映射到包含s的集合的数量。
使用该表,可以检查字符串是否出现在多个列表中
然后,您只需点击输入单词列表,删除出现在多个列表中的字符串。您将如何手动执行此操作?您可以创建一个列表并从三个列表中添加元素,而无需复制内容。然后,您可以使用适当的排序算法对列表进行排序。手动运行时间为n3。有没有更好的方法?我可以得到最小和最大的部分?检测它的参数是什么?@javascriptlearner请您澄清一下您的问题好吗?如果你指的是如何找到最小值,那么找到最小值或最大值与其他算法没有什么不同。我只是补充了一些说明。每个is列表都是排序的,每个单词可以包含任意数量的字符。我们应该删除列表中不在同一列表中的重复单词并打印出来it@javascriptlearner我的回答回答了你的问题吗?顺便说一下,我不认为你问题中的
list2
和list3
是按字母顺序排列的。
e.g.
list2-->bbb,ccc,ccc,glk,hkp
copy as
set2-->bbb,ccc,glk,hkp,...