Valid Paranthesis
console.log("Try programiz.pro");
// //Method - 1
// let str = "(){}[]";
// const arr = str.split('');
// const stack = [];
// for(let i = 0; i < arr.length; i++) {
// if(arr[i] == '(' || arr[i] == '{' || arr[i] == '[') {
// stack.push(arr[i]);
// } else if(arr[i] == ')' || arr[i] == '}' || arr[i] == ']') {
// if(stack.length === 0) {
// console.log("Invalid parentheses");
// return false;
// }
// let last = stack.pop();
// if(
// (arr[i] == ')' && last != '(') ||
// (arr[i] == '}' && last != '{') ||
// (arr[i] == ']' && last != '[')
// ) {
// console.log("Invalid parentheses");
// return false;
// }
// }
// }
// if(stack.length === 0) {
// console.log("Valid parentheses");
// return true;
// } else {
// console.log("Invalid parentheses");
// return false;
// }
// Method - 2
// let str = "([)]{}[]";
let str = "([]){}[]";
let stack = [];
let validPairs = {
'(' : ')',
'{' : '}',
'[' : ']'
}
for(let char of str){
// iterate each character of str
if(validPairs[char]){
//push open characters in stack
stack.push(char);
}
else if(char == ')' || char == '}' || char == ']'){
// if(stack.length == 0){
// console.log("invalid paranthesis")
// return
// }
if(validPairs[stack.pop()] !== char){
console.log("invalid paranthesis")
return
}
}
}
console.log("valid paranthesis")