序列

序列

簡單

說明

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

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

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

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

  • 「4914」
  • 「9142」

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

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

處理邊界情況

在 Exercism 上,不同的程式語言對於子字串長度為零時結果應該是什麼,有著不同的預期。 在 Rust 的 track 上,我們沒有針對這種情況的測試,所以你可以自由選擇你認為最合適的做法喔。

想想以下幾種做法各有什麼優缺點吧:

  • 用panic!讓程式崩潰。
  • 回傳Result::Err。(這裡做不到,因為函式簽章已經給定了)
  • 回傳一個空的向量。
  • 回傳一個向量,裡面包含的空字串數量等於字串 "digits" 的長度加一。(這個做法有一些很漂亮的數學性質!)
透過 GitHub 編輯 連結會在新視窗或分頁中開啟
Rust Exercism

準備好開始 序列 了嗎?

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