算法比较2个列表并找到错误最少的方法

时间:2018-07-18 22:47:08

标签: c# algorithm

我在制定一种算法来计算两个列表之间的差异时遇到了麻烦。

第一个列表是期望的列表,这意味着,如果一切按计划进行,这就是它的外观。

第二个列表是实际运行情况的列表。

我需要将它们进行比较,以列出并确定检查点是否丢失,或者是否存在错误记录,这意味着已经注意到了一个检查点,即不应该被注意到。 检查点的顺序很重要,它必须与预期的顺序相同。

我的问题是如何比较这两个列表,并使其找到最少的错误,并标记这些错误。

目前我已经上了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分。

最后一件事是有时间,但是我认为当我找到解决问题的方法时,我就可以处理那部分。

Here is a picture to illustrate what I mean

0 个答案:

没有答案