1. 程式人生 > >codewars遇到的比較有意思的題目

codewars遇到的比較有意思的題目

題目要求是編寫一個函式用來檢測一個字串,字串是一系列單片語成,每個單詞間用空格隔開,不用考慮空字串的情況,返回長度最小的那個單詞的長度。

博主剛入門php,技術還很菜,沒有想出來,看了其他人的解決方案,最簡潔的方案是

function findShort($str){
   return min(array_map('strlen', (explode(' ', $str))));
}
explode()是把字串打散成索引陣列,意思是每個單詞都成了陣列的一個鍵值,array_map()是指將使用者自定義函式作用到陣列中的每個值上,並返回使用者自定義函式作用後的帶有新值的陣列,strlen是php自帶的一個函式,返回字串長度,這樣到array_map()函式這一層,就返回了每個單詞的長度組成的一個索引陣列。

min() 返回引數中數值最小的。如果僅有一個引數且為陣列,min() 返回該陣列中最小的值。這樣就ruturn了長度最小的那個單詞的長度。