diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2021-07-20 17:21:05 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-07-20 17:21:05 +0100 |
| commit | 1a4236ac04b0c23cdfe973dd0720eebfacdaa38f (patch) | |
| tree | c008af3f2ac9187d0e1676a0135cc68cac058506 | |
| parent | 8d12650cbe0736b1f626bbb29d2e11edb0746c58 (diff) | |
| parent | 12f419f1667fb03c333a60de4ddc680bb9c92ad7 (diff) | |
| download | perlweeklychallenge-club-1a4236ac04b0c23cdfe973dd0720eebfacdaa38f.tar.gz perlweeklychallenge-club-1a4236ac04b0c23cdfe973dd0720eebfacdaa38f.tar.bz2 perlweeklychallenge-club-1a4236ac04b0c23cdfe973dd0720eebfacdaa38f.zip | |
Merge pull request #4571 from stuart-little/stuart-little_050_lua
1st commit on 050_lua
| -rwxr-xr-x | challenge-050/stuart-little/lua/ch-1.lua | 41 | ||||
| -rwxr-xr-x | challenge-050/stuart-little/lua/ch-2.lua | 12 |
2 files changed, 53 insertions, 0 deletions
diff --git a/challenge-050/stuart-little/lua/ch-1.lua b/challenge-050/stuart-little/lua/ch-1.lua new file mode 100755 index 0000000000..d6a39b9190 --- /dev/null +++ b/challenge-050/stuart-little/lua/ch-1.lua @@ -0,0 +1,41 @@ +#!/usr/bin/env lua + +-- run <script> <interval1-left interval1-right interval2-left interval2-right ...> + +function overlap(t1,t2) + return (t1[1]-t2[2])*(t1[2]-t2[1]) <= 0 +end + +function merge(t1,t2) + return {math.min(t1[1],t2[1]), math.max(t1[2],t2[2])} +end + +function squash(t) + for i=1,#t-1 do + for j=i+1,#t do + if overlap(t[i],t[j]) then + t[j] = merge(t[i],t[j]) + t[i]="*" + goto continue + end + end + ::continue:: + end + for i=#t,1,-1 do + if type(t[i]) ~= 'table' then table.remove(t,i) end + end + return t +end + +local ints={} +local run={} +for k,v in ipairs(arg) do + table.insert(run,tonumber(v)) + if (k%2==0) then + table.insert(ints,run) + run={} + end +end +for _,v in ipairs(squash(ints)) do + print(("[%s, %s]"):format(v[1],v[2])) +end diff --git a/challenge-050/stuart-little/lua/ch-2.lua b/challenge-050/stuart-little/lua/ch-2.lua new file mode 100755 index 0000000000..3173bfbbf8 --- /dev/null +++ b/challenge-050/stuart-little/lua/ch-2.lua @@ -0,0 +1,12 @@ +#!/usr/bin/env lua + +-- run <script> <space-separated numbers> + +local inpt={} +for _,v in ipairs(arg) do + table.insert(inpt,tonumber(v)) +end +table.sort(inpt) +for k,v in ipairs(inpt) do + if v==#inpt-k and (k==#inpt or inpt[k+1]>v) then print(v) end +end |
