diff options
author | Andreas Rumpf <rumpf_a@web.de> | 2018-09-22 13:53:58 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-09-22 13:53:58 +0200 |
commit | b2727d03a6aca88a00271475ea7d35e6052f5f87 (patch) | |
tree | 66b07daecc87b5d6b50bfae5010b8ce0f7803416 /tests | |
parent | af0c497f5dd375b83ab2f51ab4619e2843b846b5 (diff) | |
parent | 4d9aec1858ecd8651276a5e1d6ca939d345b4d11 (diff) | |
download | Nim-b2727d03a6aca88a00271475ea7d35e6052f5f87.tar.gz |
Merge pull request #9020 from LemonBoy/fix-9019
Revert #7964
Diffstat (limited to 'tests')
-rw-r--r-- | tests/let/t7936.nim | 27 |
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 |