Add tasks for all the new languages
This commit is contained in:
parent
9dc3c2bb62
commit
bba7bfd280
13208 changed files with 134745 additions and 0 deletions
26
Task/Range-extraction/Phix/range-extraction.phix
Normal file
26
Task/Range-extraction/Phix/range-extraction.phix
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
function spout(integer first, integer this, sequence s)
|
||||
string res
|
||||
if first=this-1 then
|
||||
res = sprintf("%d",s[first])
|
||||
else
|
||||
res = sprintf("%d%s%d",{s[first],iff(first=this-2?',':'-'),s[this-1]})
|
||||
end if
|
||||
return res
|
||||
end function
|
||||
|
||||
function extract_ranges(sequence s)
|
||||
integer first = 1
|
||||
string out = ""
|
||||
if length(s)!=0 then
|
||||
for i=2 to length(s) do
|
||||
if s[i]!=s[i-1]+1 then
|
||||
out &= spout(first,i,s)&','
|
||||
first = i
|
||||
end if
|
||||
end for
|
||||
out &= spout(first,length(s)+1,s)
|
||||
end if
|
||||
return out
|
||||
end function
|
||||
|
||||
puts(1,extract_ranges({0,1,2,4,6,7,8,11,12,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29,30,31,32,33,35,36,37,38,39}))
|
||||
Loading…
Add table
Add a link
Reference in a new issue