【发布时间】:2018-06-10 06:15:39
【问题描述】:
我正在以黑客等级https://www.hackerrank.com/challenges/mini-max-sum/problem解决这个问题
它的要求:打印两个以空格分隔的长整数,分别表示可以通过将五个整数中的四个恰好相加来计算的最小值和最大值。 (输出可以大于 32 位整数。)
如果我在下面的代码中进行字符串插值,它会给我一个错误:您的代码没有通过这个测试用例。我知道我不能在单个 puts/p 行中使用多个变量。
array = gets.split(" ")
def get_max_and_min_sum(input_array)
return "0 0" if input_array.size < 1
input_array = input_array.map{|i| i.to_i}
input_array = input_array.sort
return "#{sum(input_array[0..3])} #{sum(input_array[1..4])}"
end
def sum(array)
return array.inject(0){|sum,i| sum+=i}
end
p get_max_and_min_sum(array)
我的问题是如何在一行中打印多个整数,并用一个空格分隔。 我想打印 10 14 而不是“10 14”
【问题讨论】:
-
sum(input_array[0..3]).to_s + " " + sum(input_array[1..4]).to_s怎么样 -
使用
p打印结果的调试表示而不是仅仅打印结果的目的是什么? -
@maxpleaner 同样的错误打印“10 14”如上图所示
-
是的,但为什么要打印调试表示而不是正常表示?
-
为什么要急于选择答案?快速选择可能会阻止其他答案,并且不允许很快会有更好的答案出现。不用着急。这里的许多人至少要等几个小时——更长一些——来奖励绿党。这不是对所选答案(我赞成)的批评,也不是暗示您应该选择我的答案的反手方式。我的回答甚至没有直接解决你的问题。我省略了解释,因为其他人已经提供了。
标签: ruby algorithm printing puts