我是一名新的 Swift 开发人员。我使用的是 Swift 4.2 和 Xcode 10.2。
我想在数组中搜索与我的搜索字符串相比具有最多字符的单个结果。更具体地说,我需要数组中最长的字符串,它是搜索字符串的前缀。
例如,如果我的数组是:
let array = ["1", "13", "1410", "1649", "1670"]
我的搜索字符串是:
let searchString = "16493884777"
我希望结果为“1649”
。
我找不到另一个可以快速解决问题的问题。
最佳答案
您可以从末尾迭代前缀数组(假设前缀数组已排序),并在匹配时立即返回,因为该前缀将保证是最长的,因为不能存在另一个相同长度的匹配前缀:
import Foundation
func longestMatchingPrefix(_ prefixArray: [String], _ searchString: String) -> String {
for p in prefixArray.reversed() {
if searchString.hasPrefix(p) {
return p
}
}
return "No matching prefix found"
}
print(longestMatchingPrefix(["1", "13", "1410", "1649", "1670"], "16493884777"))
输出:
1649
关于swift - 在数组中搜索作为搜索字符串前缀的最长字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56655596/