Balanced brackets: Difference between revisions
Content added Content deleted
(Added various BASIC dialects (Applesoft BASIC, Chipmunk Basic, GW-BASIC, MSX Basic, and True BASIC)) |
imported>Arakov |
||
Line 2,857: | Line 2,857: | ||
=={{header|Elena}}== |
=={{header|Elena}}== |
||
ELENA |
ELENA 6.x : |
||
<syntaxhighlight lang="elena">import system'routines; |
<syntaxhighlight lang="elena">import system'routines; |
||
import extensions; |
import extensions; |
||
import extensions'text; |
import extensions'text; |
||
// --- RandomBrackets --- |
|||
randomBrackets(len) |
randomBrackets(len) |
||
{ |
{ |
||
if (0 == len) |
|||
{ |
|||
^emptyString |
|||
} |
|||
else |
|||
{ |
|||
var brackets := |
|||
Array.allocate(len).populate::(i => $91) |
|||
+ |
|||
Array.allocate(len).populate::(i => $93); |
|||
brackets := brackets.randomize(len * 2); |
|||
^ brackets.summarize(new StringWriter()).toString() |
|||
} |
|||
} |
} |
||
extension op |
extension op |
||
{ |
{ |
||
get isBalanced() |
|||
{ |
|||
var counter := new Integer(0); |
|||
self.seekEach::(ch => counter.append((ch==$91).iif(1,-1)) < 0); |
|||
^ (0 == counter) |
|||
} |
|||
} |
} |
||
public program() |
public program() |
||
{ |
{ |
||
for(int len := 0, len < 9, len += 1) |
|||
{ |
|||
var str := randomBrackets(len); |
|||
console.printLine("""",str,"""",str.isBalanced ? " is balanced" : " is not balanced") |
|||
}; |
|||
console.readChar() |
|||
}</syntaxhighlight> |
}</syntaxhighlight> |
||
{{out}} |
{{out}} |