我在制定一种算法来计算两个列表之间的差异时遇到了麻烦。
第一个列表是期望的列表,这意味着,如果一切按计划进行,这就是它的外观。
第二个列表是实际运行情况的列表。
我需要将它们进行比较,以列出并确定检查点是否丢失,或者是否存在错误记录,这意味着已经注意到了一个检查点,即不应该被注意到。 检查点的顺序很重要,它必须与预期的顺序相同。
我的问题是如何比较这两个列表,并使其找到最少的错误,并标记这些错误。
目前我已经上了3堂课。
预期班级:
public class IdealRouteCheckpoint : ICheckpoint
{
public IdealRouteCheckpoint(string checkpointValue, int minTime = 0, int maxTime = 0, bool defective = false, bool optional = false)
{
CheckpointValue = checkpointValue;
Defective = defective;
Optional = optional;
MinTime = minTime;
MaxTime = maxTime;
}
public string CheckpointValue { get; set; }
//Used for when a Checkpoint this missing for when it placed wrong
public bool Defective { get; set; }
//Used for when you do somehitng and know that people risk taking it
public bool Optional { get; set; }
//Used for OTK and HTK
public int MinTime { get; set; }
public int MaxTime { get; set; }
}
带有检查点的类,其实际去向。
public class NotedCheckPoint : ICheckpoint
{
public NotedCheckPoint(string checkpointValue)
{
CheckpointValue = checkpointValue;
}
public string CheckpointValue { get; set; }
}
然后,我正在考虑制作应该具有结果和错误标记的第三类,因此我最终可以将结果打印为PDF。那堂课看起来像这样。
public class ResultCheckpoint : ICheckpoint
{
public ResultCheckpoint(string checkpointValue, bool missing = false, bool errorNote = false, int early = 0, int late = 0)
{
CheckpointValue = checkpointValue;
Missing = missing;
ErrorNote = errorNote;
Early = early;
Late = late;
}
public string CheckpointValue { get; set; }
//MK when a checkpoint is missing on the controlCard
public bool Missing { get; set; }
//FN when there is a checkpoint too much on the controlCard
public bool ErrorNote { get; set; }
//When teams are too early to a HTK or OTK
public int Early { get; set; }
//When teams are too late to a HTK or OTK
public int Late { get; set; }
}
我已经为要实现的目标做了一幅画,但是我认为我需要解释一些事情。
左栏是预期的,没有任何内容的单元格将留出空间来记录错误提示。
“结果”列是实际记录的内容。没什么用的单元将为丢失的检查点留出空间。
每个错误注释和缺少检查点的成本为25分。
最后一件事是有时间,但是我认为当我找到解决问题的方法时,我就可以处理那部分。