From e82a197cbe277ba4beee4df958a226bac5bb795d Mon Sep 17 00:00:00 2001 From: colorbox Date: Tue, 12 Mar 2024 02:57:37 +0900 Subject: [PATCH 1/2] Add solved codes --- 20/1.cpp | 20 ++++++++++++++++++++ 20/2.cpp | 19 +++++++++++++++++++ 20/3.cpp | 20 ++++++++++++++++++++ 3 files changed, 59 insertions(+) create mode 100644 20/1.cpp create mode 100644 20/2.cpp create mode 100644 20/3.cpp diff --git a/20/1.cpp b/20/1.cpp new file mode 100644 index 0000000..5a922a9 --- /dev/null +++ b/20/1.cpp @@ -0,0 +1,20 @@ +class Solution { +public: + bool isValid(string s) { + stack stack; + + for(char c : s){ + // stack topとのチェック + if(!stack.empty() && isPair(stack.top(), c)){ + stack.pop(); + }else{ + stack.push(c); + } + } + return stack.empty(); + } + + bool isPair(char l, char r){ + return (l == '(' && r == ')' || l == '{' && r == '}' || l == '[' && r == ']'); + } +}; diff --git a/20/2.cpp b/20/2.cpp new file mode 100644 index 0000000..59cf18f --- /dev/null +++ b/20/2.cpp @@ -0,0 +1,19 @@ +class Solution { +public: + bool isValid(string s) { + stack stack; + + for(char c : s){ + if(!stack.empty() && isPair(stack.top(), c)){ + stack.pop(); + }else{ + stack.push(c); + } + } + return stack.empty(); + } + + bool isPair(char l, char r){ + return (l == '(' && r == ')' || l == '{' && r == '}' || l == '[' && r == ']'); + } +}; diff --git a/20/3.cpp b/20/3.cpp new file mode 100644 index 0000000..332501b --- /dev/null +++ b/20/3.cpp @@ -0,0 +1,20 @@ +class Solution { +public: + bool isValid(string s) { + stack stack; + + for(char c: s){ + if(!stack.empty() && isPair(stack.top(), c)){ + stack.pop(); + }else{ + stack.push(c); + } + } + + return stack.empty(); + } + + bool isPair(char l, char r){ + return (l == '{' && r == '}' || l == '(' && r == ')' || l == '[' && r == ']'); + } +}; From f080d2a942567275e8383797ed5bfe58f9e5ecb1 Mon Sep 17 00:00:00 2001 From: colorbox Date: Wed, 13 Mar 2024 02:13:58 +0900 Subject: [PATCH 2/2] =?UTF-8?q?=E3=83=AC=E3=83=93=E3=83=A5=E3=83=BC?= =?UTF-8?q?=E3=81=AE=E6=8C=87=E6=91=98=E4=BA=8B=E9=A0=85=E3=82=92=E7=9B=9B?= =?UTF-8?q?=E3=82=8A=E8=BE=BC=E3=82=93=E3=81=A0=E6=94=B9=E8=89=AF=E3=82=B3?= =?UTF-8?q?=E3=83=BC=E3=83=89=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 20/4.cpp | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 20/4.cpp diff --git a/20/4.cpp b/20/4.cpp new file mode 100644 index 0000000..8235c7d --- /dev/null +++ b/20/4.cpp @@ -0,0 +1,29 @@ +class Solution { +public: + bool isValid(string s) { + stack stack; + + if(s[0] == ')' || s[0] == '}' || s[0] == ']'){ + return false; + } + + for(char c : s){ + if(!stack.empty() && isInvalidPair(stack.top(), c)){return false;} + + if(c != '(' && c != '{' && c != '[' && !stack.empty() && isPair(stack.top(), c)){ + stack.pop(); + }else{ + stack.push(c); + } + } + return stack.empty(); + } + + bool isPair(char l, char r){ + return (l == '(' && r == ')' || l == '{' && r == '}' || l == '[' && r == ']'); + } + + bool isInvalidPair(char l, char r){ + return (l == '(' && (r == '}' || r == ']')) || (l == '{' && (r == ')' || r == ']')) || (l == '[' && (r == '}' || r == ')')); + } +};