Skip to content

Commit 3046271

Browse files
authored
Merge pull request #4 from colorbox/20
20. Valid Parentheses
2 parents ed2dbff + f080d2a commit 3046271

File tree

4 files changed

+88
-0
lines changed

4 files changed

+88
-0
lines changed

20/1.cpp

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
class Solution {
2+
public:
3+
bool isValid(string s) {
4+
stack<char> stack;
5+
6+
for(char c : s){
7+
// stack topとのチェック
8+
if(!stack.empty() && isPair(stack.top(), c)){
9+
stack.pop();
10+
}else{
11+
stack.push(c);
12+
}
13+
}
14+
return stack.empty();
15+
}
16+
17+
bool isPair(char l, char r){
18+
return (l == '(' && r == ')' || l == '{' && r == '}' || l == '[' && r == ']');
19+
}
20+
};

20/2.cpp

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
class Solution {
2+
public:
3+
bool isValid(string s) {
4+
stack<char> stack;
5+
6+
for(char c : s){
7+
if(!stack.empty() && isPair(stack.top(), c)){
8+
stack.pop();
9+
}else{
10+
stack.push(c);
11+
}
12+
}
13+
return stack.empty();
14+
}
15+
16+
bool isPair(char l, char r){
17+
return (l == '(' && r == ')' || l == '{' && r == '}' || l == '[' && r == ']');
18+
}
19+
};

20/3.cpp

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
class Solution {
2+
public:
3+
bool isValid(string s) {
4+
stack<char> stack;
5+
6+
for(char c: s){
7+
if(!stack.empty() && isPair(stack.top(), c)){
8+
stack.pop();
9+
}else{
10+
stack.push(c);
11+
}
12+
}
13+
14+
return stack.empty();
15+
}
16+
17+
bool isPair(char l, char r){
18+
return (l == '{' && r == '}' || l == '(' && r == ')' || l == '[' && r == ']');
19+
}
20+
};

20/4.cpp

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
class Solution {
2+
public:
3+
bool isValid(string s) {
4+
stack<char> stack;
5+
6+
if(s[0] == ')' || s[0] == '}' || s[0] == ']'){
7+
return false;
8+
}
9+
10+
for(char c : s){
11+
if(!stack.empty() && isInvalidPair(stack.top(), c)){return false;}
12+
13+
if(c != '(' && c != '{' && c != '[' && !stack.empty() && isPair(stack.top(), c)){
14+
stack.pop();
15+
}else{
16+
stack.push(c);
17+
}
18+
}
19+
return stack.empty();
20+
}
21+
22+
bool isPair(char l, char r){
23+
return (l == '(' && r == ')' || l == '{' && r == '}' || l == '[' && r == ']');
24+
}
25+
26+
bool isInvalidPair(char l, char r){
27+
return (l == '(' && (r == '}' || r == ']')) || (l == '{' && (r == ')' || r == ']')) || (l == '[' && (r == '}' || r == ')'));
28+
}
29+
};

0 commit comments

Comments
 (0)