【好玩的coderwars-第二个练习】
You are given an array strarr of strings and an integer k. Your task is to return the first longest string consisting of k consecutive strings taken in the array.
Example: longest_consec([“zone”, “abigail”, “theta”, “form”, “libe”, “zas”, “theta”, “abigail”], 2) –> “abigailtheta”
n being the length of the string array, if n = 0 or k > n or k <= 0 return “”.
function longestConsec($strarr, $k) {
if(empty($strarr) || $k <= 0 || $k >= count($strarr))
{
return '';
}
$ori_arr = $strarr; //保存原始数组
usort($strarr, "my_sort");
$max_index = array_keys($ori_arr, $strarr[0], true)[0]; //最大的字符串对应索引
$return_str = '';
foreach($ori_arr as $key => $val)
{
if($k-- > 0)
{
$return_str .= $ori_arr[$max_index++];
}
}
return $return_str;
}
//用户排序规则
function my_sort($a,$b)
{
return(strLen($a) < strLen($b));
}