Browse Source

Nim day 5

master
Chris Smith 5 years ago
parent
commit
a26c9ec929
1 changed files with 19 additions and 0 deletions
  1. 19
    0
      day05.nim

+ 19
- 0
day05.nim View File

@@ -0,0 +1,19 @@
1
+import sequtils, strutils
2
+
3
+proc react(polymer: seq[char], skip: char): seq[char] =
4
+    var count = 0
5
+    for c in polymer:
6
+        if c == skip or (ord(c) xor ord(skip)) == 32:
7
+            continue
8
+        if count > 0:
9
+            if (ord(c) xor ord(result[count - 1])) == 32:
10
+                result.delete(count - 1)
11
+                count -= 1
12
+                continue
13
+        result.add(c)
14
+        count += 1
15
+
16
+let polymer = toSeq(readFile("data/05.txt").strip.items).react(' ')
17
+
18
+echo polymer.len
19
+echo min(toSeq('A'..'Z').map(proc(c: char): int = len(polymer.react(c))))