我有一个问题,我需要检查某个数组是否是更大数组的一部分,这会很容易,但我需要检查更大数组是否包含完全相同的序列。例如
int[] greaterArray = {8, 3, 4, 5, 9, 12, 6 ... n - elements}
int[] lesserArray = {3, 4, 5}
现在我需要知道较小的数组是否是该数组的一部分,但具有相同的序列,因此它在较大的数组中包含彼此相邻的 3、4、5。
I tried:
var exists = greaterArray.Intersect(lesserArray).Any();
但如果较小数组的任何元素存在于较大数组中,它会返回信息,而不是精确的顺序。有任何想法吗?
int[] greaterArray = {8, 3, 4, 5, 9, 12, 6};
int[] lesserArray = { 3, 4, 5 };
bool sequenceFound = false;
for (int i = 0; i <= greaterArray.Length - lesserArray.Length; i++)
{
if (greaterArray.Skip(i).Take(lesserArray.Length).SequenceEqual(lesserArray))
{
sequenceFound = true;
break;
}
}
if (sequenceFound)
{
//sequence found
}
else
{
//sequence not found
}
使用上面的代码。它需要多个子序列greaterArray
的长度等于lesserArray
并将其与lesserArray
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)