小编Pro*_*net的帖子

给定一组递增的整数:如何为每三个或更多连续整数返回一个范围?

给定下面的整数数组(列表),我希望提取每个整数,如果三个或更多整数连续上升,我想用" - "替换中间整数来表示一个范围.然后最后将值作为字符串返回.

例如,列表中的前7个整数:-6, -3, -2, -1, 0, 1, 3 将变为'-6,-3-1,3'
因为从-3到1有超过三个连续的整数.

最终,solution(list)应该返回以下字符串:"-6,-3-1,3-5,7-11,14,15,17-20"

在其当前形式中,它返回以下字符串:"-6,-3,-2,-1,0,1,3,4,5,7,8,9,10,11,14,15,17,18,19,20" 这只是转换为字符串的数组.

var list = [-6, -3, -2, -1, 0, 1, 3, 4, 5, 7, 8, 9, 10, 11, 14, 15, 17, 18, 19, 20];
solution(list);

function solution(list) {
    final = [];
    range = [];
    while (list.length > 0) {
        take = list.splice(0,1);
        range.push(take); 
        n = 1;
        while (take+n === list[0]) {
            a = list.splice(0,1); 
            range.push(a);
            n++;
        }
        if (range.length >= …
Run Code Online (Sandbox Code Playgroud)

javascript ruby arrays

1
推荐指数
1
解决办法
83
查看次数

标签 统计

arrays ×1

javascript ×1

ruby ×1