【问题标题】:How to know if a set certain amount of strings match in 2 arrays如何知道一组一定数量的字符串是否在 2 个数组中匹配
【发布时间】:2016-11-28 22:29:31
【问题描述】:

我有一行包含 2 个字符串数组的简单代码。它们在两个数组中都包含相同的字符串,如果两个数组相同,我有一个 if 语句将起作用。像这样:

var firstArray: [String] = ["Music", "Art", "Sports", "Movies"]
var secondArray: [String] = ["Music", "Art", "Sports", "Movies"]

if firstArray == secondArray {

   //they match...
}

但是,我希望能够向第一个数组添加更多字符串,这样两个数组就不完全相同,这将取消上面的 if 语句 BUT 我想要如果第二个数组中的 4 个或更多字符串与第一个数组中的相同,则运行 if 语句。我该怎么做呢?谢谢。

【问题讨论】:

  • 元素的顺序重要吗?

标签: arrays swift if-statement swift3


【解决方案1】:

可以求出两个数组交集的大小:

let firstArray = ["Music", "Art", "Sports", "Movies"]
let secondArray = ["Music", "Art", "Sports", "Movies"]

if firstArray == secondArray {
    print("equal")
}

if Set(firstArray).intersection(secondArray).count >= 4 {
    print("At least 4 are equal")
}

请记住,将Array 转换为SetO(n) 操作。如果您经常这样做,请缓存 Set,而不是在每次检查时重新计算它。

【讨论】:

  • 谢谢您,先生。完美运行!
猜你喜欢
  • 2023-03-04
  • 2020-01-26
  • 1970-01-01
  • 2010-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多