我有一个字符串数组的数组,我需要返回后代的相同元素。
let arrayArrayStrings: [[String]] = [
["a", "b", "e"],
["a", "c", "e"],
["a", "d", "e"]
]
我希望它返回
["a", "e"]
。当我尝试这样做的时候,我的大脑已经崩溃了。我怎样才能有效地做到这一点?
Set
有强大的方法来确定两个集合的关系,因此一个可能的解决方案是将内部数组映射到Set
并调用intersection
。
let arrayArrayStrings: [[String]] = [
["a", "b", "e"],
["a", "c", "e"],
["a", "d", "e"]]
let arraySetStrings = arrayArrayStrings.map(Set.init)
var commonElements = arraySetStrings[0]
for i in 1..<arraySetStrings.count {
commonElements = commonElements.intersection(arraySetStrings[i])
}
print(commonElements.sorted())