我認爲我對這個codewars挑戰有一個很酷的解決方案,但是我沒有通過最後的測試,因爲它在我的數組的開頭添加了一個額外的1,我不知道爲什麼!在IRB中,我的代碼似乎工作正常。Codewars蝸牛測試錯誤或代碼錯誤?
@arr = []
def snail(array)
array.to_a.empty? ? (return @arr.flatten) : @arr << array.shift
snail(array.transpose.reverse)
end
當snail([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
預計[1, 2, 3, 6, 9, 8, 7, 4, 5]
但得到[1, 1, 2, 3, 6, 9, 8, 7, 4, 5]
啊,是由於這是有道理的!我一直認爲我會保持@arr每次遞歸,並沒有這樣想。學習這麼多... :) – pyan