【发布时间】:2020-02-17 12:16:39
【问题描述】:
这是一个说明情况的示例。 假设我们有两个包含一些名称的列表。我称它们为原始 (O) 和修改 (M) 列表。注意,M 有遗漏的名字。我无法访问 O,但我可以访问 M。我从 O 获得的是一个列表,我称之为 O1,它遵循两个条件:(1)在重复的情况下,只有最近的名称应该可以考虑,(2)O1的顺序是O的LIFO。
例如,假设原始列表包含 O={n1,n2,n3,n2,n1,n3,n1,n3} 其中 n1 是第一个在第一、第五和第七位写下自己名字的人.所以,我所拥有的是 O1={n3,n1,n2},这两个条件都适用。现在,修改后的列表包含 M={n2,n3,n2,n1,n3,n1} (两个名称已被删除(n1,n3)),通过遵循这两个条件,我可以创建 M1={n1,n3, n2}。通过比较 O1 和 M1
O1={n3,n1,n2}
M1={n1,n3,n2}
我可以找到 n3 作为缺少的名称,因为 n3 的位置已在我生成的列表 (M1) 中被修改。
如何将 n1 作为缺失的名称?
【问题讨论】:
-
您是否有权访问任何其他结构或信息?您似乎无法从您的示例中区分 O={n1,n2,n3,n2,n1,n3,n1,n3} 或 O={n3,n2,n3,n2,n1,n3, n1,n3},因为任何一个都可以满足 O1 的构造方式。
-
我知道 O 中出现了多少个名字,在这个例子中是 8,有多少对 O 隐藏,在这个例子中是 2 个名字,但我无权访问 O。我只有O1、M 和我按照这两个条件创建 M1。