summary refs log tree commit diff stats
path: root/tests
diff options
context:
space:
mode:
authorAndreas Rumpf <rumpf_a@web.de>2018-09-22 13:53:58 +0200
committerGitHub <noreply@github.com>2018-09-22 13:53:58 +0200
commitb2727d03a6aca88a00271475ea7d35e6052f5f87 (patch)
tree66b07daecc87b5d6b50bfae5010b8ce0f7803416 /tests
parentaf0c497f5dd375b83ab2f51ab4619e2843b846b5 (diff)
parent4d9aec1858ecd8651276a5e1d6ca939d345b4d11 (diff)
downloadNim-b2727d03a6aca88a00271475ea7d35e6052f5f87.tar.gz
Merge pull request #9020 from LemonBoy/fix-9019
Revert #7964
Diffstat (limited to 'tests')
-rw-r--r--tests/let/t7936.nim27
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/let/t7936.nim b/tests/let/t7936.nim
new file mode 100644
index 000000000..3819dfc02
--- /dev/null
+++ b/tests/let/t7936.nim
@@ -0,0 +1,27 @@
+discard """
+  action: "run"
+"""
+
+import
+  tables, deques, sequtils
+
+const
+  lookupTable = {'(': ')', '{': '}', '[': ']'}.toTable
+
+proc isPaired*(value: string): bool =
+  var stack = initDeque[char]() 
+
+  for item in value:
+    # echo "Looking at " & item
+    if item in lookupTable:
+      stack.addLast(item)
+    if item in toSeq(lookupTable.values):
+      if stack.len == 0:
+        return false
+      if lookupTable[stack.popLast()] != item:
+        return false
+
+  return stack.len == 0
+
+doAssert isPaired("{[()]}") == true
+doAssert isPaired("a)b(c") == false