私はこのcodewarsチャレンジにかなりクールな解決策があると思いますが、最後のテストに失敗しました。なぜなら、余分な1を私の配列の先頭に追加していて、なぜそれがわからないのですか? IRBでは、私のコードは正常に動作するようです。 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]
コードワードカタツムリのテストが間違っているかコードが間違っていますか?
0
A
答えて
1
問題を抱えて
@arr = []
def snail(array)
array.to_a.empty? ? (return @arr.flatten) : @arr << array.shift
snail(array.transpose.reverse)
end
は@arr
がテストの間で消去されていないです。だからおそらく、失敗する前のテストはsnail([[1]])
のようになり、@arr = [[1]]
となります(フラットにすると、余分なものが1
を前面に追加します)。
ソリューションを使用すると、特定のテストケースを終了するとき、次のようなものは、それを行うだろう@arr
をクリアするには、次のようになります。
@arr = []
def snail(array)
if array.to_a.empty?
output = @arr.flatten
@arr = []
return output
else
@arr << array.shift
end
snail(array.transpose.reverse)
end
1
def snail(array)
head, *tail = array
head ? head + snail(tail.transpose.reverse) : []
end
arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
snail(arr) #=> [1, 2, 3, 6, 9, 8, 7, 4, 5]
+1
ニース。 'array [0]?'を 'array.any? 'に置き換える方が良いかもしれません。 ? 'または' array.empty? ? '(そして、後者の場合は、これを逆にする)。 –
関連する問題
- 1. エンティティモデルの設計が間違っているか、間違っていますか?
- 2. エビの方法が間違っているか間違っていますか?
- 3. Tarjanの強い接続コンポーネントが間違っているか、コードが間違っていますか?
- 4. 言語コードが間違っている
- 5. 何が間違っていますか?
- 6. スペースカウントが間違っていますか?
- 7. ImageView.getLayoutY()が間違っていますか?
- 8. System.Windows.SystemParameters.PrimaryScreenWidthが間違っていますか?
- 9. RectF.centerpointが間違っていますか?
- 10. クエリが間違っていますか?
- 11. ダイアログコードが間違っていますか?
- 12. が間違ってFortranで間違っている
- 13. テスト環境でデータベースのソートが間違っていますか?
- 14. PHPのテキストボックスのコードで何が間違っていますか?
- 15. 私のサイトのコードで何が間違っていますか?
- 16. 次のコードのファイルパスに何が間違っていますか?
- 17. コンボボックスのjavascriptコードの何が間違っていますか?
- 18. SET形式が間違っています。どちらが間違っていたかわからない
- 19. なぜこのPythonコードが間違っていますか?
- 20. 私のCSSコードで何が間違っていますか?
- 21. このコードで何が間違っていますか?
- 22. C++にこのコードが間違っていますか?
- 23. このコードで何が間違っていますか?
- 24. 私のコードで何が間違っていますか?
- 25. このコードは何が間違っていますか?
- 26. このコードで何が間違っていますか?
- 27. フラグメント内で自分のコードが間違っていますか?
- 28. このコードで何が間違っていますか?
- 29. 私のHaskellコードに何が間違っていますか?
- 30. 何が間違っていますか? (終了コードの比較)
理にかなってはいああありがとう!私はいつも、それぞれの再帰を@arrのままにしておきたいと思っており、そのように考えることはありませんでした。とても学ぶ... :) – pyan