RosettaCodeData/Task/Set-consolidation/Nim/set-consolidation.nim
2023-07-01 13:44:08 -04:00

15 lines
467 B
Nim

proc consolidate(sets: varargs[set[char]]): seq[set[char]] =
if len(sets) < 2:
return @sets
var (r, b) = (@[sets[0]], consolidate(sets[1..^1]))
for x in b:
if len(r[0] * x) != 0:
r[0] = r[0] + x
else:
r.add(x)
r
echo consolidate({'A', 'B'}, {'C', 'D'})
echo consolidate({'A', 'B'}, {'B', 'D'})
echo consolidate({'A', 'B'}, {'C', 'D'}, {'D', 'B'})
echo consolidate({'H', 'I', 'K'}, {'A', 'B'}, {'C', 'D'}, {'D', 'B'}, {'F', 'G', 'H'})