Skip to content

Commit 73ce2cc

Browse files
committed
2023-02-05 update: added "20. Valid Parentheses"
1 parent f6724da commit 73ce2cc

File tree

3 files changed

+47
-0
lines changed

3 files changed

+47
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,4 @@ Profile on LeetCode: [fartem](https://leetcode.com/fartem/).
1818
| 9. Palindrome Number | [Link](https://leetcode.com/problems/palindrome-number/) | [Link](./lib/easy/palindrome_number.dart) |
1919
| 13. Roman to Integer | [Link](https://leetcode.com/problems/roman-to-integer/) | [Link](./lib/easy/roman_to_integer.dart) |
2020
| 14. Longest Common Prefix | [Link](https://leetcode.com/problems/longest-common-prefix/) | [Link](./lib/easy/longest_common_prefix.dart) |
21+
| 20. Valid Parentheses | [Link](https://leetcode.com/problems/valid-parentheses/) | [Link](./lib/easy/valid_parentheses.dart) |

lib/easy/valid_parentheses.dart

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
// https://leetcode.com/problems/valid-parentheses/
2+
class Solution {
3+
bool isValid(String s) {
4+
var stack = [];
5+
for (int i = 0; i < s.length; i++) {
6+
var c = s[i];
7+
switch (c) {
8+
case '(':
9+
case '{':
10+
case '[':
11+
stack.insert(0, c);
12+
break;
13+
case ')':
14+
if (stack.isEmpty || stack.removeAt(0) != '(') {
15+
return false;
16+
}
17+
break;
18+
case '}':
19+
if (stack.isEmpty || stack.removeAt(0) != '{') {
20+
return false;
21+
}
22+
break;
23+
case ']':
24+
if (stack.isEmpty || stack.removeAt(0) != '[') {
25+
return false;
26+
}
27+
break;
28+
}
29+
}
30+
return stack.isEmpty;
31+
}
32+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import 'package:leetcode_dart/easy/valid_parentheses.dart';
2+
import 'package:test/test.dart';
3+
4+
void main() {
5+
group(
6+
'Example tests',
7+
() {
8+
final vp = Solution();
9+
test('true', () => expect(true, vp.isValid('()')));
10+
test('true', () => expect(true, vp.isValid('()[]{}')));
11+
test('false', () => expect(false, vp.isValid('(]')));
12+
},
13+
);
14+
}

0 commit comments

Comments
 (0)