Balanced parenthesis check for expression using javascript
Given an expression with series of braces,curly braces and big brackets " () {} [] ", you have to determine that whether these parenthesis are balanced or not. If given a string " ({}) ", by looking at it we can clearly say that parenthesis are balanced. Today we are going to implement this using javascript. We will be using data structure stack./**
* Stack that will hold the braces
*/
var stack = [];
/**
* Returns "Correct" when parenthesis are validated, "Incorrect" otherwise
*/
function validString(input1)
{
if(processExp(input1))
return "Correct";
else
return "Incorrect";
}
function processExp(exp)
{
for(var i =0;i<exp.length;i++)
{
if(exp[i] == '(' || exp[i] == '{' || exp[i] == '[')
stack.push(exp[i]);
else if(exp[i] == ')' || exp[i] == '}' || exp[i] == ']')
{
if(stack.length==0 || !isMatchingPair(stack[stack.length-1],exp[i]))
return false;
else
stack.pop();
}
}
if(stack.length==0)
return true;
else
return false;
}
function isMatchingPair(ch1,ch2)
{
if(ch1 == '(' && ch2 == ')')
return true;
else if(ch1 == '{' && ch2 == '}')
return true;
else if(ch1 == '[' && ch2 == ']')
return true;
else
return false;
}
Call validString("([])") to check the expression. Hope you understood this simple program
This comment has been removed by the author.
ReplyDelete