我正在尝试反转一个字符串:
def reverse(string)
reversed_string = ""
string.split("")
string.each do |letter, idx|
reversed_string = string.length > 0 ? letter[idx] + reversed_string : reversed_string
end
end
reverse("abc")
我不断收到一个错误消息,指出“ split”方法和“ each”方法都不存在。
有很多方法可以到达目的地:
def reverse(s)
ary = s.split('') # => ["f", "o", "o"], ["b", "a", "r"]
reversed_str = ''
ary.size.times do
reversed_str << ary.pop # => "o", "oo", "oof", "r", "ra", "rab"
end
reversed_str # => "oof", "rab"
end
reverse('foo') # => "oof"
reverse('bar') # => "rab"
这不一定是最快的,并且,如果您想学习如何替换方法(如)reverse
,则应尝试编写几种不同的变体,然后运行基准测试,以便发现自己最快的方法。这是Ruby定义的方式String.reverse
。
还要注意,反转字符串与反转数组是不同的。它们是相似的,因此对您来说是一个很好的第二课。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句