From 179553b3b6d12904efe07f1174fc08851a3d80d5 Mon Sep 17 00:00:00 2001 From: MarianVJ Date: Fri, 31 Mar 2023 09:25:53 +0200 Subject: [PATCH] First Commit --- adaptors_task/student/src/impl.cpp | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/adaptors_task/student/src/impl.cpp b/adaptors_task/student/src/impl.cpp index 170c42fd..63b8dbb7 100644 --- a/adaptors_task/student/src/impl.cpp +++ b/adaptors_task/student/src/impl.cpp @@ -1,8 +1,37 @@ #include "impl.h" #include +#include const std::vector> brackets { {'(', ')'}, {'[', ']'}, {'{', '}'} }; + +bool isValid(const std::string& source) { + std::stack pairedBrackets; + + for (auto const& c : source) { + for (auto const& bracket : brackets) { + if ( c == bracket.first) { + pairedBrackets.push(c); + break; + } + else if ( c == bracket.second) { + if (pairedBrackets.empty()) { + return false; + } + char lastBracket = pairedBrackets.top(); + pairedBrackets.pop(); + + for (auto const& bracket_ : brackets) { + if (lastBracket == bracket_.first && c != bracket_.second) { + return false; + } + } + break; + } + } + } + return pairedBrackets.empty(); +} \ No newline at end of file