【问题标题】:How to check whether a list is consecutive subset of another list如何检查一个列表是否是另一个列表的连续子集
【发布时间】:2017-04-29 13:41:55
【问题描述】:

我有两个这样的列表:

a1 = { 1, 2, 3, 4, 5};
a2 = { 1, 3};

我想检查a2 是否是a1 的连续子集。我用:

bool isSubset = !a2.Except(a1).Any();

基于该示例,isSubset 应该是 false,但是当我运行时,isSubset = true

【问题讨论】:

  • 一个集合是无序的,所以它不是你要找的。您要查找的内容与在字符串中搜索子字符串基本相同。研究字符串匹配算法,这应该可以让您了解如何实现它。

标签: c# list subset


【解决方案1】:

这是否会在您的系统中发生:

a1 = { 1, 2, 3, 4, 1, 3, 5};
a2 = { 1, 3};

或者这不可能?

也看看这个:

Finding a subsequence in longer sequence

另外,F# 将是一种更简洁的语言来解决这类问题。

【讨论】:

  • 每个列表都是唯一的,所以这个条件是不可能的。现在我已经可以解决这个问题,但我的另一个问题是如何知道数字。即基于该示例,子集 = {1,3}
猜你喜欢
  • 1970-01-01
  • 2021-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-08
  • 1970-01-01
相关资源
最近更新 更多