RosettaCodeData/Task/Balanced-brackets/JavaScript/balanced-brackets-1.js

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++;
}