gpt4 book ai didi

ruby - 在不使用 ruby​​ 循环的情况下反转数组

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:10:23 26 4
gpt4 key购买 nike

我遇到了一个编码挑战,要反转一个包含 5 个元素的数组。如果不使用反向方法,我将如何做到这一点?

代码:

def reverse(array)
array
end

p reverse(["a", 1, "apple", 8, 90])

最佳答案

您可以将数组视为堆栈并从末尾弹出元素:

def reverse(array)
rev = []
rev << array.pop until array.empty?
rev
end

或者如果你不喜欢修改对象,使用更像函数式的reduce:

def reverse(array)
array.reduce([]) {|acc, x| [x] + acc}
end

Cary 在关于表演的评论中提到。函数式方法可能不是最快的方法,所以如果您真的想快速完成,请创建一个缓冲数组并从末尾添加项目到开始:

def reverse(array)
reversed = Array.new(array.count)
array.each_with_index do |item, index|
reversed[-(index + 1)] = item
end
reversed
end

关于ruby - 在不使用 ruby​​ 循环的情况下反转数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25100273/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com