递归计算字符串中的字符数。 (红宝石)

时间:2011-11-14 17:20:19

标签: ruby recursion

我需要编写一个只使用两个字符串方法的递归函数.empty?和.chop。 不,我不能使用.length(你能告诉它的功课吗?)

到目前为止,我一直坚持编写函数本身,我传递了字符串,但我不确定如何使用.chop字符串方法递归遍历字符。我会有一个柜台吗?这个东西的语法对我来说似乎很棘手。

 def stringLength(string)
  if string.empty?
     return 0
  else
     .....
  end
 end

我希望我可以放下更多,但这是我坚持的。

1 个答案:

答案 0 :(得分:4)

return 1 + stringLength(string.chop)

这是你的缺失线。以下是一个如何工作的示例:

stringLength("Hello") = 1 + stringLength("Hell")
stringLength("Hell")  = 1 + stringLength("Hel")
stringLength("Hel")   = 1 + stringLength("He")
stringLength("He")    = 1 + stringLength("H")
stringLength("H")     = 1 + stringLength("")
stringLength("")      = 0