36 lines
472 B
Plaintext
36 lines
472 B
Plaintext
unbalanced(data s)
|
|
{
|
|
integer b, i;
|
|
|
|
b = i = 0;
|
|
while (i + ~s && -1 < b) {
|
|
b += s[i -= 1] == '[' ? -1 : 1;
|
|
}
|
|
|
|
b;
|
|
}
|
|
|
|
generate(data b, integer d)
|
|
{
|
|
if (d) {
|
|
d.times(l_bill, list(), -1, '[', ']').l_rand().ucall(b_append, 1, b);
|
|
}
|
|
}
|
|
|
|
main(void)
|
|
{
|
|
integer i;
|
|
|
|
i = 0;
|
|
while (i < 10) {
|
|
data s;
|
|
|
|
generate(s, i);
|
|
o_(s, " is ", unbalanced(s) ? "un" : "", "balanced\n");
|
|
|
|
i += 1;
|
|
}
|
|
|
|
0;
|
|
}
|