不确定我做错了什么,但我似乎弄错了。
问题是,给你一串空格分隔的数字,你必须返回最大和最小的数字。
注意: 所有数字都是有效的 Int32,不需要验证它们。 输入字符串中始终至少有一个数字。 输出字符串必须是由一个空格分隔的两个数字,并且最大的数字在前。
def high_and_low(numbers)
# numbers contains a string of space seperated numbers
#return the highest and lowest number
numbers.minmax { |a, b| a.length <=> b.length }
end
输出:
`high_and_low': undefined method `minmax' for "4 5 29 54 4 0 -214 542 -64 1 -3 6 -6":String
最佳答案
minmax
不是为字符串实现的。您需要先将字符串拆分为数组。但请注意,split
将返回一个字符串数组,而不是数字,您需要在下一步中将字符串转换为整数 (to_i
)。
因为 minmax
以与要求相反的顺序返回值,您需要使用 reverse
旋转数组,然后只是 join
这些数字最终结果用空格。
numbers = "4 5 29 54 4 0 -214 542 -64 1 -3 6 -6"
def high_and_low(numbers)
numbers.split.minmax_by(&:to_i).reverse.join(' ')
end
high_and_low(numbers)
#=> "542 -214"
关于ruby - 返回字符串中的最高和最低数字 : Ruby,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63793952/