From 372e1ee8467c9ee70212a654e3ee31f31cf04a97 Mon Sep 17 00:00:00 2001 From: vicky925 <115666382+vicky925@users.noreply.github.com> Date: Thu, 13 Oct 2022 03:37:34 +0530 Subject: [PATCH 1/2] Create Parsing_A_Boolean_Expression.cpp --- dsa/cpp/Parsing_A_Boolean_Expression.cpp | 47 ++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 dsa/cpp/Parsing_A_Boolean_Expression.cpp diff --git a/dsa/cpp/Parsing_A_Boolean_Expression.cpp b/dsa/cpp/Parsing_A_Boolean_Expression.cpp new file mode 100644 index 0000000..49fa35f --- /dev/null +++ b/dsa/cpp/Parsing_A_Boolean_Expression.cpp @@ -0,0 +1,47 @@ +/* +Name :- Vicky +Github Id :- vicky925 +*/ + + + +class Solution { +public: + char evaluate(stack&s){ + bool has_true=false; + bool has_false=false; + while(s.top()!='&' && s.top()!='!' && s.top()!='|'){ + if(s.top()=='t') + has_true=true; + else + has_false=true; + s.pop(); + } + if(s.top()=='&'){ + if(has_false==false) + return 't'; + } + else if(s.top()=='!'){ + if(has_false==true) + return 't'; + } + else{ + if(has_true==true) + return 't'; + } + return 'f'; + } + bool parseBoolExpr(string expression) { + stacks; + for(auto ch:expression){ + if(ch!=')' && ch!='(' && ch!=',') + s.push(ch); + if(ch==')'){ + char temp=evaluate(s); + s.pop(); + s.push(temp); + } + } + return s.top()=='t'?true:false; + } +}; From 4119febf7dfd1e4c5ce1ede6883d24d4fd66b933 Mon Sep 17 00:00:00 2001 From: vicky925 <115666382+vicky925@users.noreply.github.com> Date: Thu, 13 Oct 2022 03:38:45 +0530 Subject: [PATCH 2/2] Update Parsing_A_Boolean_Expression.cpp --- dsa/cpp/Parsing_A_Boolean_Expression.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/dsa/cpp/Parsing_A_Boolean_Expression.cpp b/dsa/cpp/Parsing_A_Boolean_Expression.cpp index 49fa35f..46cd112 100644 --- a/dsa/cpp/Parsing_A_Boolean_Expression.cpp +++ b/dsa/cpp/Parsing_A_Boolean_Expression.cpp @@ -1,6 +1,7 @@ /* Name :- Vicky Github Id :- vicky925 +Problem Link :- https://leetcode.com/problems/parsing-a-boolean-expression/ */