Balanced brackets: Difference between revisions

No edit summary
Line 90:
 
=={{header|Aime}}==
<lang aime></lang>integer
unbalanced(text s)
{
integer b, i;
 
b = 0;
i = 0;
while (i < length(s)) {
if (character(s, i) == '[') {
b += 1;
} else {
b -= 1;
if (b < 0) {
break;
}
}
 
i += 1;
}
 
return b;
}
 
text
generate(integer d)
{
integer i;
text s;
 
i = d;
while (i) {
s = insert(s, 0, '[');
i -= 1;
}
 
i = d;
while (i) {
s = insert(s, drand(length(s)), ']');
i -= 1;
}
 
return s;
}
 
integer
main(void)
{
integer i;
 
i = 0;
while (i < 10) {
text s;
 
s = generate(i);
o_text(s);
o_text(" is ");
if (unbalanced(s)) {
o_text("un");
}
o_text("balanced\n");
 
i += 1;
}
 
return 0;
}</lang>
Sample output:
<pre></pre> is balanced
][ is unbalanced
]][[ is unbalanced
]]][[[ is unbalanced
[[]][][] is balanced
[[][]][][] is balanced
[]]]][][[][[ is unbalanced
][[[]][[][]]][ is unbalanced
[][[[][[]]]]][][ is unbalanced
[[][[[[][]]][][]]] is balanced</pre>
 
=={{header|ANTLR}}==
Anonymous user