We are required to write a JavaScript function that takes in a string str containing just the characters −
'(', ')', '{', '}', '[' and ']'
Our function should determine if the input string is valid.
An input string is valid if −
Open brackets must be closed by the same type of brackets.
Open brackets must be closed in the correct order.
For example −
"()" is a valid parenthesis
"()[]{}" is a valid parentheses
"(]" is an invalid parenthesis
Example
The code for this will be −
const str = "()[]{}"; const isValid = (str = '') => { const map=new Map(); map.set('{','}'); map.set('(',')'); map.set('[',']'); const b=[]; for(let i=0;i<str.length;i++){ if(map.has(str.charAt(i))){ b.push(str.charAt(i)); } else{ let pop=b.pop(); if(map.get(pop)!==str.charAt(i)){ return false; } }; }; return b.length===0; }; console.log(isValid(str));
Output
And the output in the console will be −
true false