完成一些旧的HackerRank挑战 .
其中一些似乎被打破了 - 例如“公平的比例”给了我们以下的函数签名(注意:参数的资本不是我的错,在这种情况下它是不可改变的 .
func fairRations(B: [Int]) -> Int {
// Enter code answer code here
}
现在问题测试用例(问题的细节在这里并不重要)要求我们返回一个
国际
(即4)对于某些测试用例,和a
字符串
(即“否”)用于其他测试 .
所以我需要返回一个String或一个Int,这取决于我的答案 . 我试图返回枚举,但我不能对HackerRank测试进行任何更改 - 也返回任何
喜欢:
func fairRations(B: [Int]) -> Any {
// Enter code answer code here
}
不会工作,因为Any不能隐式转换为String或Int .
HackerRank问题在这里:https://www.hackerrank.com/challenges/fair-rations/problem
为了澄清对Joakim Danielson的回应,问题描述意味着你可以向控制台输出“NO”,但实际上并不是这样(见下面的截图) .
是否有可能在Swift中返回一个返回String和Int的函数?
1 回答
只需更改函数即可返回
String
. 请记住,整数也可以表示为字符串 . 字符串"4"表示数字4 .我在黑客级别中将功能更改为此:
它通过了这个测试:
基本上,
如果要返回整数
x
,只需返回x.description
如果要返回NO,只需返回
"NO"
.以上两个值都是字符串 .
返回
String
此处有效,因为测试会调用String(...)
初始化程序 . 如果你传递一个字符串,它仍然会创建你传入的相同字符串 .编辑:
我尝试编辑客户端代码,它的工作原理 . 您只需返回一个
Int?
并执行此操作: