栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何转置字符串数组

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何转置字符串数组

您尝试做的事情称为 换位 。旋转一个看起来像这样的数组:

[[1, 2, 3], [4, 5, 6]]

变成看起来像这样的数组:

[[1, 4], [2, 5], [3, 6]]

为此,让我们定义一个通用的转置函数并将其应用于您的问题

// import the text file from the bundleguard    let inputURL = NSBundle.mainBundle().URLForResource("input", withExtension: "txt"),    let input = try? String(contentsOfURL: inputURL)    else { fatalError("Unable to get data") }// Convert the input string into [[String]]let strings = input.componentsSeparatedByString("n").map { (string) -> [String] in    string.componentsSeparatedByString(":")}// Define a generic transpose function.// This is the key to the solution.public func transpose<T>(input: [[T]]) -> [[T]] {    if input.isEmpty { return [[T]]() }    let count = input[0].count    var out = [[T]](count: count, repeatedValue: [T]())    for outer in input {        for (index, inner) in outer.enumerate() { out[index].append(inner)        }    }    return out}// Transpose the stringslet results = transpose(strings)

您可以使用看到转置的结果

for result in results {    print("(result)")}

哪个生成(例如)

["AYGA", "AYLA", "AYMD"]["GKA", "LAE", "MAG"]["GOROKA", "", "MADANG"]["GOROKA", "LAE", "MADANG"]["PAPUA NEW GUINEA", "PAPUA NEW GUINEA", "PAPUA NEW GUINEA"]["06", "00", "05"]["04", "00", "12"]["54", "00", "25"]["S", "U", "S"]["145", "00", "145"]["23", "00", "47"]["30", "00", "19"]["E", "U", "E"]["5282", "0000", "0020"]

这样的优点是不依赖于您拥有的数组数量,而子数组的数量则取自第一个数组的计数。

您可以为此下载一个示例游乐场,该输入在游乐场的资源中作为文件输入。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/436396.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号