Leetcode No. 151 - Reverse Words in a String
輸入一個字串,裡面會有數個單字,目標是要把單字反向輸出。如:
Input: "this dog" |
麻煩的可能是額外的規則:輸入有可能在字串前中後都會多塞一些空白,但輸出必須還是要跟原本的一樣,如:
Input: " this dog " |
Elixir
Elixir 有提供幾個方法可以好好「利用」:
s |> String.split() |
考慮額外規則,移除前後空白需要用 String.trim/1;要把多 split 出來的 item 過濾要用 Enum.filter/2(或 Enum.reject/2)。照理來說,應該要寫像下面這樣:
s |> String.trim() |
因為 String.split/1 已經把 trim 和 filter 的事都做掉了,所以第一個寫法已經是正解了。
但要注意的是:如果使用 String.split/3 的話,它的行為就跟 String.split/1 不同,會把多餘的空白也切出一個 item,使用 iex 實驗如下:
iex(1)> " foo bar " |> String.split() |
PHP
PHP 也有提供很多函式可以用,只是空白的部分需要自己處理:
$trimed = trim($s) |
上面是每個資料處理過程的步驟,總共用到了下面幾個函式: