44 lines
868 B
JavaScript
44 lines
868 B
JavaScript
function createRandomBracketSequence(maxlen)
|
|
{
|
|
var chars = { '0' : '[' , '1' : ']' };
|
|
function getRandomInteger(to)
|
|
{
|
|
return Math.floor(Math.random() * (to+1));
|
|
}
|
|
var n = getRandomInteger(maxlen);
|
|
var result = [];
|
|
for(var i = 0; i < n; i++)
|
|
{
|
|
result.push(chars[getRandomInteger(1)]);
|
|
}
|
|
return result.join("");
|
|
}
|
|
|
|
function bracketsAreBalanced(s)
|
|
{
|
|
var open = (arguments.length > 1) ? arguments[1] : '[';
|
|
var close = (arguments.length > 2) ? arguments[2] : ']';
|
|
var c = 0;
|
|
for(var i = 0; i < s.length; i++)
|
|
{
|
|
var ch = s.charAt(i);
|
|
if ( ch == open )
|
|
{
|
|
c++;
|
|
}
|
|
else if ( ch == close )
|
|
{
|
|
c--;
|
|
if ( c < 0 ) return false;
|
|
}
|
|
}
|
|
return c == 0;
|
|
}
|
|
|
|
var c = 0;
|
|
while ( c < 5 ) {
|
|
var seq = createRandomBracketSequence(8);
|
|
alert(seq + ':\t' + bracketsAreBalanced(seq));
|
|
c++;
|
|
}
|