匿名 #7711(2008/09/27 17:38 GMT) [ JavaScript ] Rating0/0=0.00
//[1, [3, 6], 12, 13, [15, 25, 5], 26, 27] <= //compact_number_list([1, 3, 4, 5, 6, 12, 13, 15, 20, 25, 26, 27])
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
function compact_number_list(anArray){ var len = anArray.length; var result = new Array(); for(var i=0;i<len;i++){ var seq; if(seq=isSequence(anArray[i], i, anArray)){ result.push(seq); i += (seq[2])? (seq[1]-seq[0])/seq[2] : seq[1]-seq[0]; } else { result.push(anArray[i]); } } return result; } function isSequence(el, index, array){ var next=array[index+1]; if(next == undefined){ return false; } var d = next - el; for(var i=0;array[index + i] == el + i * d;i++); if(i>2){ return (d==1) ? [el, array[index + i -1]] : [el, array[index + i -1], d]; } else { return false; } }
Rating0/0=0.00-0+
[ reply ]
匿名
#7711()
[
JavaScript
]
Rating0/0=0.00
Rating0/0=0.00-0+
[ reply ]