【发布时间】:2014-11-06 02:02:50
【问题描述】:
我不明白为什么 reversed_string=string[i] + reversed_string 将最后一个字符放在首位。似乎 string[i] 将索引第一个字符而不是最后一个字符。因此,如果字符串是“abc”,则索引 0 将是“a”而不是“c”。有人可以解释一下 ruby 如何从索引 0 获取“c”吗?然后,当然,索引 1 中的“b”?等等等等。
编写一个将字符串作为输入的方法,并以相反的顺序返回具有相同字母的新字符串。
难度:简单。
def reverse(string)
reversed_string = ""
i = 0
while i < string.length
reversed_string = string[i] + reversed_string
i += 1
end
return reversed_string
end
puts("reverse(\"abc\") == \"cba\": #{reverse("abc") == "cba"}")
puts("reverse(\"a\") == \"a\": #{reverse("a") == "a"}")
puts("reverse(\"\") == \"\": #{reverse("") == ""}")
【问题讨论】:
-
"abcdefg".reverse! => "gfedcba"
-
@scottxu 我认为这个问题是为了通过编写一个反转字符串的方法来练习编程。