序列

序列

中等

說明

給定一個數字字串,請依這些子字串出現的順序,輸出該字串中所有長度為n的連續子字串。

例如,字串「49142」有以下這些 3 位數的數列:

  • 「491」
  • 「914」
  • 「142」

以及以下這些 4 位數的數列:

  • 「4914」
  • 「9142」

如果你向一個 5 位數的字串要求 6 位數的數列,那不管得到什麼,都怨不得別人。

請注意,這些數列只需要佔據輸入中_相鄰的位置_;這些數字不需要在_數值上連續_。

提示

要完成這個練習,你需要實作slices函式,它會接收一段文字,並回傳指定長度的數字子序列:

如果這是你第一次解這個練習,建議你先沿用提供的簽章:

slices :: Int -> String -> [[Int]]

之後,不妨再回來看看這個問題,試試其他的資料型態和函式庫:

  • ByteString,來自 bytestring 套件。
  • Sequence,來自 containers 套件。
  • Text,來自 text 套件。
  • Vector,來自 vector 套件。

測試套件刻意設計成能接受幾乎任何合理的型別簽章,所以鼓勵你找出你認為最好的那一種。

透過 GitHub 編輯 連結會在新視窗或分頁中開啟
Haskell Exercism

準備好開始 序列 了嗎?

註冊 Exercism,透過 107 個練習 和真人引導來學習並精通 Haskell,全部免費。