【发布时间】:2016-07-02 17:30:08
【问题描述】:
我想改变:
word = "Stackoverflow is awesome!"
进入:
"StAcKoVeRfLoW Is aWeSoMe!"
我做到了:
result = ""
a = word.length
odd = (1..a).select(&:odd?)
even = (1..a).select(&:even?)
odd.each {|i| even.each {|b| result += word[b].to_s}}
result # => "akvrlwi wsm!akvrlwi wsm!akvrlwi wsm!akvrlwi wsm!akvrlwi wsm!akvrlwi wsm!akvrlwi wsm!akvrlwi wsm!akvrlwi wsm!akvrlwi wsm!akvrlwi wsm!akvrlwi wsm!akvrlwi wsm!"
【问题讨论】:
-
我在您的代码中发现了一些错误: 1. 您想将
word字符串中的一些字符转换为大写字符,但您从未在脚本中调用String#upcase方法。 2. 您只是将要修改的字符添加到result变量中,但您忘记添加不需要修改的字符。 3. 在odd.each {|i| even.each {|b| result += word[b].to_s}}行中,您正在执行odd * even迭代。请记住,word变量的长度为odd + even。希望这可以帮助您找到解决方案!