Balanced brackets: Difference between revisions

Add Nimrod
(Add Nimrod)
Line 2,555:
brack("[[[]][]]]");
false</lang>
 
=={{header|Nimrod}}==
<lang nimrod>import math
randomize()
 
proc shuffle(s: var string) =
for i in countdown(s.high, 0):
swap(s[i], s[random(s.len)])
 
proc gen(n): string =
result = newString(2 * n)
for i in 0 .. <n:
result[i] = '['
for i in n .. <(2*n):
result[i] = ']'
shuffle(result)
 
proc balanced(txt): bool =
var b = 0
for c in txt:
case c
of '[':
inc(b)
of ']':
dec(b)
if b < 0: return false
else: discard
b == 0
 
for n in 0..9:
let s = gen(n)
echo "'", s, "' is ", (if balanced(s): "balanced" else: "not balanced")</lang>
Output:
<pre>'' is balanced
'][' is not balanced
'][[]' is not balanced
'[][[]]' is balanced
'[[]][][]' is balanced
']][][[[][]' is not balanced
'][]][][][[][' is not balanced
'[[[[[[]]]][]]]' is balanced
'][[][]]]][[[[][]' is not balanced
'][][][][][[][[]]][' is not balanced</pre>
 
=={{header|Objeck}}==
Anonymous user