【发布时间】:2017-10-23 19:07:57
【问题描述】:
我有三个数组,例如 ["a","d","c"] ["x,p,z"] ["o,n,q"]。我想将一个数组合并成一个数组,像这样 ["a","c","d","n","o","p","q","x","z"]并且必须对其进行排序。
我试过这样
var arr1 = ["a","x","d"]
let str2 = "byq".characters.map { String($0) } // Manually i did string to array conversion
var arr2 = Array(str2)
let str3 = "cmo".characters.map { String($0) } // Manually i did string to array conversion
var arr3 = Array(str3)
var formattedArr2: [String] = [(arr2.map{String($0)}).joined(separator: ",")]
func combineArrays<T>(arrays:[[T]]) -> [T] {
let maxCount = arrays.reduce(0) {max($0, $1.count)}
var result = [T]()
for i in 0..<maxCount {
for array in arrays {
if i < array.count {
result.append(array[i])
}
}
}
return result
}
print(combineArrays(arrays: [arr1,arr2,arr3]).sorted())
我得到的答案是["a","c","d","n","o","p","q","x","z"]。但我做错了。请任何人都可以提出将数组合并到单个数组中的想法
如何合并这个数组并从 [["a","d","c"],["x,p,z"],["o,n,q"]] 分割成单个字符?
【问题讨论】:
-
“我得到的答案是 [...] 我希望我得到它” - 你得到了正确的结果吗?在第一种情况下,问题的目的是什么,在后一种情况下,预期的输出是什么?
-
输出是正确的,但我相信他要求的是一种简洁有效的方法来合并和排序数组。
-
@chris - 是的,克里斯。我做了什么,我将字符串转换为数组并合并它。但我想将数组转换为数组到单个数组
-
@vadian - 为什么你提到这个问题是重复的?如果重复意味着您可以使用原始问题解决此问题吗????
-
副本向您展示了将数组合并到单个数组中的方法。好的,没有提到排序,但您的问题中得到了正确的排序。