gpt4 book ai didi

c# - 在更长的序列中查找子序列

转载 作者:太空狗 更新时间:2023-10-29 20:05:51 28 4
gpt4 key购买 nike

我需要在其他大序列中找到一个序列,例如{1,3,2,3}存在于{1,3,2,3,4, 3}{5,1,3,2,3}。有什么方法可以用 IEnumerable 或其他东西快速完成吗?

最佳答案

与@dlev 类似,但它也处理 {1,1,1,2}.ContainsSubsequence({1,1,2})

public static bool ContainsSubsequence<T>(this IEnumerable<T> parent, IEnumerable<T> target)
{
var pattern = target.ToArray();
var source = new LinkedList<T>();
foreach (var element in parent)
{
source.AddLast(element);
if(source.Count == pattern.Length)
{
if(source.SequenceEqual(pattern))
return true;
source.RemoveFirst();
}
}
return false;
}

关于c# - 在更长的序列中查找子序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7324177/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com