我想知道的是转换代码最有效的方法(在swift 2中):
我已经有了一个基本的,冗长的方法来实现这一目标,但我想找到一种非常有效的方法.
对不起,如果问题有点长......
假设我有一本字典:
dict = {"Jim": "y", "Bob": "y", "Ravioli": "n"} #etc...
Run Code Online (Sandbox Code Playgroud)
我想打印出所有值为"y"的键(即:"Jim","Bob").我该怎么做(以最简单的方式让像我这样的noobie了解)?
*PS这个问题已在SO上得到解答,但解决方案只返回一个值而不是全部(以及其他我不理解的).
PPS.看起来每个人似乎都认为它是重复的,但是SO不会让我删除我的问题,因为它有答案.(*
免责声明:在SO上也有与此类似的问题,但是 它们要么都不解决算法的效率问题,要么用另一种语言编写。看到这个关于python效率的答案,看看它是否可以帮助您回答我的问题。
因此,我需要最有效的方法来找到任意给定数量的所有因素,这些因素可以快速处理非常大的数量。我已经有一些可以迭代的代码,但是要花很长时间才能处理超过6个字符的数字。
编辑:根据要求,这是我执行此操作的一些无效方法(为清楚起见,省略了错误检查)
真的很乱:
@IBAction func findFactorsButton(_ sender: AnyObject) {
if let _ = textField.text, !textField.text!.isEmpty {
counter = 1
factors = []
repeat {
counter += 1
if Int(textField.text!)! % counter == 0 {
factors.append(String(counter))
} else {
continue
}
} while counter != Int(textField.text!)
factors.removeLast()
outputLabel.text = factors.joined(separator: ", ")
} else {
outputLabel.text = ""
}
}
Run Code Online (Sandbox Code Playgroud)
更少混乱的解决方案(操场):
func calculateFactors(n: Int) -> String {
var …Run Code Online (Sandbox Code Playgroud)