Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 66765d2

Browse files
Update solutions
1 parent beda2ad commit 66765d2

File tree

6 files changed

+71
-3
lines changed

6 files changed

+71
-3
lines changed

‎lib/array/longest_common_prefix.dart

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
String longestCommonPrefix(List<String> strs) {
2+
if (strs.isEmpty) {
3+
return '';
4+
}
5+
6+
for (var charIndex = 0; charIndex < strs.first.length; charIndex++) {
7+
var char = strs.first[charIndex];
8+
for (var str in strs.skip(1)) {
9+
if (charIndex == str.length || str[charIndex] != char) {
10+
return strs.first.substring(0, charIndex);
11+
}
12+
}
13+
}
14+
15+
return strs.first;
16+
}

‎lib/leetcode.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
library leetcode;
22

33
export 'array/contains_duplicate.dart';
4+
export 'array/longest_common_prefix.dart';
45
export 'array/max_profit.dart';
56
export 'array/permute.dart';
67
export 'array/remove_element.dart';
@@ -17,6 +18,7 @@ export 'string/is_anagram.dart';
1718
export 'string/is_palindrome.dart';
1819
export 'string/length_of_longest_substring.dart';
1920
export 'string/letter_combinations.dart';
21+
export 'tree/binary_paths.dart';
2022
export 'tree/invert_tree.dart';
2123
export 'tree/is_same_tree.dart';
2224
export 'tree/is_symmetric.dart';

‎lib/tree/binary_paths.dart

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import 'package:leetcode/tree/tree_node.dart';
2+
3+
List<String> binaryTreePaths(TreeNode? root) {
4+
var output = <String>[];
5+
void traverse(TreeNode? node, String curr) {
6+
if (node == null) {
7+
return;
8+
}
9+
10+
curr += '${node.val}->';
11+
if (node.left == null && node.right == null) {
12+
output.add(curr.substring(0, curr.length - 2));
13+
return;
14+
}
15+
16+
traverse(node.left, curr);
17+
traverse(node.right, curr);
18+
}
19+
20+
traverse(root, '');
21+
return output;
22+
}

‎pubspec.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
name: leetcode
22
description: Solutions to leetcode problems in Dart.
33
version: 1.0.0
4-
# homepage: https://www.example.com
54

65
environment:
76
sdk: '>=2.18.6 <3.0.0'
87

9-
# dependencies:
10-
# path: ^1.8.0
8+
dependencies:
9+
collection: ^1.17.1
10+
characters: ^1.2.1
1111

1212
dev_dependencies:
1313
lints: ^2.0.0
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import 'package:leetcode/leetcode.dart';
2+
import 'package:test/test.dart';
3+
4+
void main() {
5+
test('example 1', () {
6+
var expected = 'fl';
7+
expect(longestCommonPrefix(['flower', 'flow', 'flight']), equals(expected));
8+
});
9+
10+
test('example 2', () {
11+
var expected = '';
12+
expect(longestCommonPrefix(['dog', 'racecar', 'car']), equals(expected));
13+
});
14+
}

‎test/tree/binary_paths_test.dart

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import 'package:leetcode/leetcode.dart';
2+
import 'package:test/test.dart';
3+
4+
void main() {
5+
test('example 1', () {
6+
var input = TreeNode.fromList([1, 2, 3, null, 5]);
7+
expect(binaryTreePaths(input), equals(['1->2->5', '1->3']));
8+
});
9+
10+
test('example 2', () {
11+
var input = TreeNode.fromList([1]);
12+
expect(binaryTreePaths(input), equals(['1']));
13+
});
14+
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /