RosettaCodeData/Task/Range-expansion/DWScript/range-expansion.dw

16 lines
495 B
Plaintext

function ExpandRanges(ranges : String) : array of Integer;
begin
for var range in ranges.Split(',') do begin
var separator = range.IndexOf('-', 2);
if separator > 0 then begin
for var i := range.Left(separator-1).ToInteger to range.Copy(separator+1).ToInteger do
Result.Add(i);
end else begin
Result.Add(range.ToInteger)
end;
end;
end;
var expanded := ExpandRanges('-6,-3--1,3-5,7-11,14,15,17-20');
PrintLn(JSON.Stringify(expanded));