JSFiddle - React, Tailwind, and code Playground
by Rahul Desai
JavaScript
function validateParenthesisString(inputString){
var firstCharacter = inputString.charAt(0);
if(inputString.length === 0){ // empty string is as good as a valid string
console.log('String is valid.');
console.log('***********************************');
return;
} else if(firstCharacter === ')' || firstCharacter === ']' || firstCharacter === '}'){ // closing parenthesis
console.log('First character is a closing one.');
console.log('String is invalid.');
console.log('***********************************');
return;
}
var element,
parenthesisStack = [];
// iterate through the string
for(var index = 0, length = inputString.length; index < length; index++){
element = inputString.charAt(index); // cache the character
switch(element){
case '(':
parenthesisStack.push('('); // openeing bracket, so just push it
break;
case ')':
parenthesisStack = checkParenthesis(parenthesisStack, '(', ')');
break;
case '[':
parenthesisStack.push('[');
break;
case ']':
parenthesisStack = checkParenthesis(parenthesisStack, '[', ']');
break;
case '{':
parenthesisStack.push('{');
break;
case '}':
parenthesisStack = checkParenthesis(parenthesisStack, '{', '}');
break;
default: // garbage character
console.log('Invalid character encountered: ' + inputString.charAt(index));
console.log('Please enter a valid string.');
console.log('parenthesisStack:', parenthesisStack);
console.log('***********************************');
return;
};
}
console.log('parenthesisStack:', parenthesisStack); // just for debugging
// check parenthesisStack
if(parenthesisStack.length === 0){
console.log('String is valid!');
} else {
console.log('String is invalid!');
}
console.log('***********************************');
};
function...