From 685eedcac979562d2517d66280396e742ff6bccb Mon Sep 17 00:00:00 2001 From: mark Date: Sat, 26 Nov 2022 21:49:38 +0100 Subject: [PATCH] add nim version. --- snail.nim | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 snail.nim diff --git a/snail.nim b/snail.nim new file mode 100644 index 0000000..5bb454b --- /dev/null +++ b/snail.nim @@ -0,0 +1,62 @@ + +proc snail(xss: seq[seq[int]]): seq[int] = + let h = len(xss) + if h == 0: + return @[] + let w = len(xss[0]) + if h == 0: + return @[] + + let max = if h > w: + h + else: + w + + var v: seq[int] = @[] + + for b in 0..(max div 2): + let ex = w - b - 1; + let ey = h - b - 1; + + for c in b..ex: + v.add(xss[b][c]) + + for r in b+1..ey: + v.add(xss[r][ex]) + + if ex == b or ey == b: + return v + + for o in b..