From 94028604f9f209b74010873aed7bb0f8c957e27f Mon Sep 17 00:00:00 2001 From: Rohit Tanwar Date: Wed, 3 Jan 2018 08:51:23 +0530 Subject: [PATCH] add minN and maxN --- snippets/infixToPostFix.md | 33 ------------------------------ snippets/postfixToInfix.md | 41 -------------------------------------- 2 files changed, 74 deletions(-) delete mode 100644 snippets/infixToPostFix.md delete mode 100644 snippets/postfixToInfix.md diff --git a/snippets/infixToPostFix.md b/snippets/infixToPostFix.md deleted file mode 100644 index 84371ddbc..000000000 --- a/snippets/infixToPostFix.md +++ /dev/null @@ -1,33 +0,0 @@ -### infixToPostfix - -Works perfectly! - -```js -const infixToPostfix = expr => { - let rpn = '' - let solve = expr.replace(/\^/g,'**').match(/([0-9]+|[\+\(\)\/\-]|\*+)/g).filter(el => !/\s+/.test(el) && el !== '') - let stack = [] - let precedence = {'**':5,'/':4,'*':4,'+':3,'-':3} - solve.forEach(symbol => { - if(!isNaN(parseFloat(symbol)) && isFinite(symbol)){ - rpn += symbol + ' ' - } - else if (Object.keys(precedence).includes(symbol)) { - while(((precedence[symbol] < precedence[stack[stack.length-1]]) || ((precedence[symbol] == precedence[stack[stack.length-1]]) && symbol !== "**"))&&(stack[stack.length - 1] !== '(')) { - rpn += stack.pop() + ' ' - } - stack.push(symbol) - } - else if(symbol === '('){stack.push(symbol)} - else if(symbol === ')'){while (stack[stack.length - 1] !== '('){rpn += stack.pop() + ' '; if (stack.length === 0){throw `Mismatched parantheses`}} stack.pop()} - else {throw `${symbol} is not a recognized symbol`} - }) - while(stack.length !== 0){ - rpn += stack.pop() + ' ' - } - return rpn -} -``` -```js - -``` diff --git a/snippets/postfixToInfix.md b/snippets/postfixToInfix.md deleted file mode 100644 index 52d1a89bb..000000000 --- a/snippets/postfixToInfix.md +++ /dev/null @@ -1,41 +0,0 @@ -### postfixToInfix - - -``` js -const postfixToInfix = RPN => { - let convert = RPN.replace(/\^/g,'**').split(/\s+/g).filter(el => !/\s+/.test(el) && el !== '') - let stack = [] - let result = [] - let precedence = {null : 4 ,'**':3 ,'/' : 2,'*': 2,'+':1,'-':1 } - convert.forEach(symbol => { - let stra,strb - if(!isNaN(parseFloat(symbol)) && isFinite(symbol)){ - result.push(symbol) - stack.push(null) - } - else if (Object.keys(precedence).includes(symbol)) { - let [a,b,opa,opb] = [result.pop(),result.pop(),stack.pop(),stack.pop()] - if(precedence[opb] < precedence[symbol]) { - strb = `(${b})` - } - else{ - strb = `${b}` - } - if((precedence[opa] < precedence[symbol]) || ((precedence[opa] === precedence[symbol]) && ["/","-"].includes(symbol) )){ - stra = `(${a})` - } - else { - stra = `${a}` - } - result.push(strb +symbol + stra) - stack.push(symbol) - } - else throw `${symbol} is not a recognized symbol` - }) - if(result.length === 1) return result.pop() - else throw `${RPN} is not a correct RPN` -} -``` -```js - -```