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
|
|
@ -0,0 +1,19 @@
|
|||
import sequtils
|
||||
|
||||
proc ncsub[T](se: seq[T], s = 0): seq[seq[T]] =
|
||||
result = @[]
|
||||
if se.len > 0:
|
||||
let
|
||||
x = se[0..0]
|
||||
xs = se[1 .. -1]
|
||||
p2 = s mod 2
|
||||
p1 = (s + 1) mod 2
|
||||
for ys in ncsub(xs, s + p1):
|
||||
result.add(x & ys)
|
||||
result.add(ncsub(xs, s + p2))
|
||||
elif s >= 3:
|
||||
result.add(@[])
|
||||
|
||||
echo "ncsub(", toSeq 1.. 3, ") = ", ncsub(toSeq 1..3)
|
||||
echo "ncsub(", toSeq 1.. 4, ") = ", ncsub(toSeq 1..4)
|
||||
echo "ncsub(", toSeq 1.. 5, ") = ", ncsub(toSeq 1..5)
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
func non_continuous(min, max, subseq=[], has_gap=false) {
|
||||
|
||||
static current = [];
|
||||
|
||||
range(min, max).each { |i|
|
||||
current.push(i);
|
||||
has_gap && subseq.append([current...]);
|
||||
i < max && non_continuous(i.inc, max, subseq, has_gap);
|
||||
current.pop;
|
||||
has_gap = current.len;
|
||||
}
|
||||
|
||||
subseq;
|
||||
}
|
||||
|
||||
say non_continuous(1, 3);
|
||||
say non_continuous(1, 4);
|
||||
say non_continuous("a", "d");
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
# Generate a stream of subsets of the input array
|
||||
def subsets:
|
||||
if length == 0 then []
|
||||
else .[0] as $first
|
||||
| (.[1:] | subsets)
|
||||
| ., ([$first] + .)
|
||||
end ;
|
||||
|
||||
# Generate a stream of non-continuous indices in the range 0 <= i < .
|
||||
def non_continuous_indices:
|
||||
[range(0;.)] | subsets
|
||||
| select(length > 1 and length != 1 + .[length-1] - .[0]) ;
|
||||
|
||||
def non_continuous_subsequences:
|
||||
(length | non_continuous_indices) as $ix
|
||||
| [.[ $ix[] ]] ;
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
def count(f): reduce f as $i (0; . + 1);
|
||||
|
||||
count( [range(0;20)] | non_continuous_subsequences)
|
||||
Loading…
Add table
Add a link
Reference in a new issue