From 69ba49b561670049864ac1f601ba3a64bf89fff0 Mon Sep 17 00:00:00 2001 From: Kaushik Narayan R Date: Tue, 31 Oct 2023 16:30:58 -0700 Subject: [PATCH] day 30: 678-valid-parenthesis-string --- 678-valid-parenthesis-string/driver.cpp | 10 ++++++++ 678-valid-parenthesis-string/soln.cpp | 33 +++++++++++++++++++++++++ 678-valid-parenthesis-string/soln.hpp | 8 ++++++ 3 files changed, 51 insertions(+) create mode 100644 678-valid-parenthesis-string/driver.cpp create mode 100644 678-valid-parenthesis-string/soln.cpp create mode 100644 678-valid-parenthesis-string/soln.hpp diff --git a/678-valid-parenthesis-string/driver.cpp b/678-valid-parenthesis-string/driver.cpp new file mode 100644 index 0000000..0a91eda --- /dev/null +++ b/678-valid-parenthesis-string/driver.cpp @@ -0,0 +1,10 @@ +#include "soln.hpp" + +int main() +{ + string s = "((**)((()))"; + bool answer = true; + Solution soln; + cout << "Validated parenthesis string correctly? " << soln.test(s, answer) << endl; + return 0; +} \ No newline at end of file diff --git a/678-valid-parenthesis-string/soln.cpp b/678-valid-parenthesis-string/soln.cpp new file mode 100644 index 0000000..f761129 --- /dev/null +++ b/678-valid-parenthesis-string/soln.cpp @@ -0,0 +1,33 @@ +#include "soln.hpp" + +bool Solution::checkValidString(string s) +{ + int min_open = 0, max_open = 0; + for (int i = 0; i < s.length(); i++) + { + if (s[i] == '(') + { + min_open++; + max_open++; + } + else if (s[i] == ')') + { + min_open--; + max_open--; + } + else + { + min_open--; + max_open++; + } + if (max_open < 0) + break; + min_open = max(min_open, 0); + } + return min_open == 0; +} + +bool Solution::test(string s, bool answer) +{ + return checkValidString(s) == answer; +} \ No newline at end of file diff --git a/678-valid-parenthesis-string/soln.hpp b/678-valid-parenthesis-string/soln.hpp new file mode 100644 index 0000000..ba07184 --- /dev/null +++ b/678-valid-parenthesis-string/soln.hpp @@ -0,0 +1,8 @@ +#include +using namespace std; +class Solution +{ +public: + bool checkValidString(string s); + bool test(string s, bool answer); +}; \ No newline at end of file