所以我已经尝试解决这个问题几个小时了,但显然仍然缺少一些东西。也许我想错了,但我认为这是一个非常复杂的问题:
我有三个列表,其中的项目按固定顺序排列。为了解释问题,假设它们包含项目 A 到 Z - 大部分顺序相同,但有一些例外,项目可以位于不同的位置。此外,只有一个列表包含所有项目 - 另一个包含一个子集并且缺少某些项目。由于此问题的解决方案就足够了,因此可能没有包含所有项目的列表,而只有部分重叠的集合。更好的是解决多个(> 3)列表问题的算法。
所以这里是例子:
List 1: A B C D E F G H I J
List 2: A C D B F G
List 3: B C D E H F G
现在我想要匹配这三个列表,以可视化排序顺序不同的地方以及缺少的项目在哪里。所以结果应该是:
List 1: A B C D E F G H I J
List 2: A C D B F G
List 3: B C D E H F G
所以我立即看到,列表 2 的 B 位置错误,列表 3 中缺少 A,而列表 3 中的 H 位置也错误。
我正在考虑将结果存储在 CSV 中以导入 Excel。所以这些行是:
A,A,
B,,B
C,C,C
...
现在我的问题是:如何匹配列表以生成 CSV 输出?我使用的语言是 Java。到目前为止,我未能解决除参考列表之外的列表包含较早项目的问题,这些项目稍后出现在参考列表中。
顺便说一下,这是一个现实世界的问题。
任何建议表示赞赏。