一尘不染

C#数组子集获取

algorithm

我有一个字节数组,我想确定此字节数组的内容是否在另一个较大的数组中作为连续序列存在。最简单的方法是什么?


阅读 753

收藏
2020-07-28

共1个答案

一尘不染

天真的方法是:

public static bool IsSubsetOf(byte[] set, byte[] subset) {
    for(int i = 0; i < set.Length && i + subset.Length <= set.Length; ++i)
        if (set.Skip(i).Take(subset.Length).SequenceEqual(subset))
            return true;
    return false;
}

对于更有效的方法,您可以考虑使用更高级的字符串匹配算法,例如KMP

2020-07-28