好玩的线上检测代码工具-codewars(2)

【好玩的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));
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值