Balanced brackets: Difference between revisions
Content added Content deleted
m (tweak formatting of task) |
|||
Line 12: | Line 12: | ||
=={{header|D}}== |
=={{header|D}}== |
||
<lang d>import std.stdio, std.algorithm, std.string, |
<lang d>import std.stdio, std.algorithm, std.string, std.random; |
||
std.range, std.random, std.conv; |
|||
auto generate(int n) { |
auto generate(int n) { |
||
auto r = "[]".repeat(n).dup; |
|||
randomShuffle(r); |
|||
return r; |
|||
} |
} |
||
void main() { |
void main() { |
||
foreach (i; 0 .. |
foreach (i; 0 .. 9) { |
||
auto s = generate(i); |
auto s = generate(i); |
||
writefln("%- |
writefln("%-16s %s", s, |
||
s.balancedParens('[', ']') ? "" : " |
s.balancedParens('[', ']') ? "OK" : "bad"); |
||
} |
} |
||
}</lang> |
}</lang> |
||
One output: |
|||
Output: |
|||
<pre> |
<pre> OK |
||
[] OK |
|||
[[]] OK |
|||
]][[][ bad |
|||
]][[][[] bad |
|||
[[[][]][]] OK |
|||
[[]][[][]][] OK |
|||
[]]]][[[[[]]][ bad |
|||
[[[[][[]][]]]][] OK</pre> |
|||
"][]][][[]" is not balanced |
|||
"[]][[]][[]" is not balanced |
|||
"][[]]][]]][" is not balanced |
|||
"[[]][[[[]]]]" is balanced |
|||
"[[]][][]]]][[" is not balanced</pre> |
|||
=={{header|J}}== |
=={{header|J}}== |