攤平陣列

攤平陣列

中等

簡介

一批緊急物資送到了,但出現了一個問題。 為了避免物品損壞,手電筒、急救包、毛毯這些東西都裝在箱子裡,而有些箱子甚至還巢狀在其他箱子裡,一層又一層!

為了在緊急情況發生時做好準備,所有東西都必須放在同一個箱子裡,方便隨時取用。 你能把所有物資都拆箱取出,再放進同一個箱子裡,讓它們在最需要的時候隨時派上用場嗎?

說明

取出任意深度的巢狀陣列,並回傳完全扁平化的陣列。

注意,某些語言軌道可能會在輸入陣列中加入類似 null 的值,而這些值的表示方式會因軌道而異。 這些值應該從扁平化後的陣列中排除。

此外,輸入的資料型態可能不同,其中包含的型別也可能不同,這取決於軌道。

詳情請參閱測試套件。

範例

輸入:[1, [2, 6, null], [[null, [4]], 5]]

輸出:[1, 2, 6, 4, 5]

附錄

Note

上面的指令與共用儲存庫同步,以確保所有語言 track 之間的一致性。 這份附錄會提供額外的說明,或視需要修改指令,好更貼近 Clojure track 的目標。

在這個 Clojure track 的練習中,你可以假設輸入是任意巢狀的向量組合,而輸出是向量,如測試所示。 不過,這並不是硬性要求;你也可以假設輸入是任意巢狀的序列性資料組合(陣列、向量等),輸出則是序列。


出處

面試題連結會在新視窗或分頁中開啟
透過 GitHub 編輯 連結會在新視窗或分頁中開啟
Clojure Exercism

準備好開始 攤平陣列 了嗎?

註冊 Exercism,透過 12 個概念105 個練習 和真人引導來學習並精通 Clojure,全部免費。