Ruby拥有反向字符串方法

Sta*_*erd 1 ruby

我尝试实现自己的反向字符串方法:

def string_reverse(string)
  half = string.length / 2
  half.times do |i|
    string[i] = string[-i-1]
    string[-i-1] = string[i]
  end
end
Run Code Online (Sandbox Code Playgroud)

但它只反转了字符串的前半部分.我在这里失踪了什么?

Bal*_*ick 6

您需要第三个变量来交换字符,或使用并行赋值:

def string_reverse(string)
  half = string.length / 2
  half.times do |i|
    string[i], string[-i-1] = string[-i-1], string[i]
  end
end
Run Code Online (Sandbox Code Playgroud)