trackler 2.0.0.1 → 2.0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/bump-content +3 -1
- data/bin/verify-metadata +2 -2
- data/common/exercises/alphametics/canonical-data.json +19 -9
- data/common/exercises/food-chain/canonical-data.json +7 -1
- data/common/exercises/grains/canonical-data.json +66 -0
- data/common/exercises/raindrops/description.md +4 -5
- data/common/exercises/triangle/canonical-data.json +81 -54
- data/lib/trackler/version.rb +1 -1
- data/tracks/c/config.json +26 -19
- data/tracks/c/exercises/allergies/makefile +15 -0
- data/tracks/c/exercises/allergies/src/allergies.h +21 -0
- data/tracks/c/exercises/allergies/src/example.c +32 -0
- data/tracks/c/exercises/allergies/src/example.h +26 -0
- data/tracks/c/exercises/allergies/test/test_allergies.c +203 -0
- data/tracks/c/exercises/allergies/test/vendor/unity.c +1300 -0
- data/tracks/c/exercises/allergies/test/vendor/unity.h +274 -0
- data/tracks/c/exercises/allergies/test/vendor/unity_internals.h +701 -0
- data/tracks/c/exercises/atbash-cipher/makefile +16 -0
- data/tracks/c/exercises/atbash-cipher/src/example.c +71 -0
- data/tracks/c/exercises/atbash-cipher/src/example.h +7 -0
- data/tracks/c/exercises/atbash-cipher/test/test_atbash_cipher.c +113 -0
- data/tracks/c/exercises/atbash-cipher/test/vendor/unity.c +1300 -0
- data/tracks/c/exercises/atbash-cipher/test/vendor/unity.h +274 -0
- data/tracks/c/exercises/atbash-cipher/test/vendor/unity_internals.h +701 -0
- data/tracks/c/exercises/phone-number/makefile +16 -0
- data/tracks/c/exercises/phone-number/src/example.c +66 -0
- data/tracks/c/exercises/phone-number/src/example.h +8 -0
- data/tracks/c/exercises/phone-number/test/test_phone_number.c +108 -0
- data/tracks/c/exercises/phone-number/test/vendor/unity.c +1300 -0
- data/tracks/c/exercises/phone-number/test/vendor/unity.h +274 -0
- data/tracks/c/exercises/phone-number/test/vendor/unity_internals.h +701 -0
- data/tracks/csharp/config.json +8 -0
- data/tracks/csharp/exercises/bowling/BowlingTest.cs +188 -33
- data/tracks/csharp/exercises/bowling/Example.cs +38 -9
- data/tracks/csharp/exercises/rectangles/Example.cs +91 -0
- data/tracks/csharp/exercises/rectangles/RectanglesTest.cs +133 -0
- data/tracks/elisp/docs/INSTALLATION.org +1 -1
- data/tracks/elixir/config.json +8 -66
- data/tracks/elixir/docs/LEARNING.md +1 -1
- data/tracks/elixir/exercises/diamond/diamond_test.exs +12 -12
- data/tracks/elixir/exercises/grep/example.exs +92 -0
- data/tracks/elixir/exercises/grep/grep.exs +6 -0
- data/tracks/elixir/exercises/grep/grep_test.exs +259 -0
- data/tracks/elixir/exercises/markdown/markdown.exs +59 -2
- data/tracks/elixir/exercises/nucleotide-count/nucleotide_count_test.exs +4 -4
- data/tracks/elixir/exercises/phone-number/phone_number_test.exs +5 -0
- data/tracks/fsharp/exercises/bowling/BowlingTest.fs +158 -43
- data/tracks/fsharp/exercises/bowling/Example.fs +53 -24
- data/tracks/go/config.json +5 -0
- data/tracks/go/exercises/diamond/diamond_test.go +227 -0
- data/tracks/go/exercises/diamond/example.go +47 -0
- data/tracks/go/exercises/food-chain/example.go +1 -1
- data/tracks/go/exercises/food-chain/food_chain_test.go +30 -6
- data/tracks/go/exercises/nucleotide-count/example.go +21 -8
- data/tracks/go/exercises/nucleotide-count/nucleotide_count_test.go +45 -37
- data/tracks/haskell/exercises/anagram/test/Tests.hs +1 -11
- data/tracks/java/bin/journey-test.sh +165 -128
- data/tracks/java/docs/ABOUT.md +5 -8
- data/tracks/java/exercises/hello-world/build.gradle +0 -6
- data/tracks/java/exercises/hello-world/src/test/java/HelloWorldTest.java +0 -1
- data/tracks/java/exercises/meetup/build.gradle +0 -1
- data/tracks/java/exercises/meetup/src/example/java/Meetup.java +9 -7
- data/tracks/java/exercises/meetup/src/test/java/MeetupTest.java +185 -188
- data/tracks/lua/config.json +0 -73
- data/tracks/lua/exercises/bowling/bowling_spec.lua +92 -48
- data/tracks/lua/exercises/bowling/example.lua +4 -1
- data/tracks/objective-c/config.json +9 -30
- data/tracks/objective-c/exercises/pangram/PangramExample.h +7 -0
- data/tracks/objective-c/exercises/pangram/PangramExample.m +21 -0
- data/tracks/objective-c/exercises/pangram/PangramTest.m +51 -0
- data/tracks/objective-c/xcodeProject/ObjectiveC.xcodeproj/project.pbxproj +18 -0
- data/tracks/ocaml/README.md +46 -1
- data/tracks/ocaml/SETUP.md +21 -2
- data/tracks/ocaml/config.json +48 -78
- data/tracks/perl5/README.md +15 -8
- data/tracks/perl5/testall.pl +5 -5
- data/tracks/php/config.json +26 -34
- data/tracks/php/docs/ABOUT.md +15 -0
- data/tracks/php/exercises/allergies/allergies_test.php +121 -0
- data/tracks/php/exercises/allergies/example.php +64 -0
- data/tracks/php/exercises/etl/etl_test.php +52 -0
- data/tracks/php/exercises/etl/example.php +12 -0
- data/tracks/php/exercises/nucleotide-count/example.php +25 -0
- data/tracks/php/exercises/nucleotide-count/nucleotide-count_test.php +36 -0
- data/tracks/php/exercises/pig-latin/example.php +25 -29
- data/tracks/php/exercises/pig-latin/pig-latin_test.php +26 -19
- data/tracks/php/exercises/space-age/example.php +65 -0
- data/tracks/php/exercises/space-age/space-age_test.php +70 -0
- data/tracks/php/exercises/triangle/example.php +43 -0
- data/tracks/php/exercises/triangle/triangle_test.php +140 -0
- data/tracks/pony/exercises/anagram/example.pony +6 -6
- data/tracks/pony/exercises/anagram/test.pony +3 -4
- data/tracks/pony/exercises/bob/test.pony +23 -23
- data/tracks/pony/exercises/difference-of-squares/test.pony +11 -11
- data/tracks/pony/exercises/hamming/example.pony +3 -3
- data/tracks/pony/exercises/hamming/test.pony +16 -16
- data/tracks/pony/exercises/hello-world/test.pony +5 -4
- data/tracks/pony/exercises/leap/test.pony +8 -8
- data/tracks/python/config.json +18 -0
- data/tracks/python/exercises/diamond/diamond_test.py +33 -0
- data/tracks/python/exercises/diamond/example.py +15 -0
- data/tracks/python/exercises/linked-list/example.py +47 -0
- data/tracks/python/exercises/linked-list/linked_list.py +13 -0
- data/tracks/python/exercises/linked-list/linked_list_test.py +49 -0
- data/tracks/python/exercises/list-ops/example.py +55 -0
- data/tracks/python/exercises/list-ops/list_ops.py +38 -0
- data/tracks/python/exercises/list-ops/list_ops_test.py +136 -0
- data/tracks/ruby/bin/generate +22 -2
- data/tracks/ruby/config.json +12 -83
- data/tracks/ruby/exercises/allergies/allergies_test.rb +0 -1
- data/tracks/ruby/exercises/atbash-cipher/atbash_cipher_test.rb +0 -1
- data/tracks/ruby/exercises/beer-song/beer_song_test.rb +1 -2
- data/tracks/ruby/exercises/binary/example.rb +0 -1
- data/tracks/ruby/exercises/binary-search-tree/binary_search_tree_test.rb +1 -1
- data/tracks/ruby/exercises/bowling/.version +1 -0
- data/tracks/ruby/exercises/bowling/bowling_test.rb +109 -133
- data/tracks/ruby/exercises/bowling/example.rb +7 -7
- data/tracks/ruby/exercises/bowling/example.tt +27 -0
- data/tracks/ruby/exercises/circular-buffer/circular_buffer_test.rb +0 -2
- data/tracks/ruby/exercises/clock/example.rb +0 -2
- data/tracks/ruby/exercises/connect/connect_test.rb +0 -1
- data/tracks/ruby/exercises/custom-set/custom_set_test.rb +0 -1
- data/tracks/ruby/exercises/diamond/diamond_test.rb +0 -1
- data/tracks/ruby/exercises/etl/etl_test.rb +1 -1
- data/tracks/ruby/exercises/house/house_test.rb +0 -1
- data/tracks/ruby/exercises/isogram/isogram_test.rb +2 -2
- data/tracks/ruby/exercises/largest-series-product/example.tt +0 -3
- data/tracks/ruby/exercises/largest-series-product/largest_series_product_test.rb +0 -4
- data/tracks/ruby/exercises/linked-list/linked_list_test.rb +1 -1
- data/tracks/ruby/exercises/meetup/meetup_test.rb +0 -1
- data/tracks/ruby/exercises/nth-prime/example.tt +0 -2
- data/tracks/ruby/exercises/nth-prime/nth_prime_test.rb +0 -2
- data/tracks/ruby/exercises/ocr-numbers/ocr_numbers_test.rb +1 -2
- data/tracks/ruby/exercises/protein-translation/protein_translation_test.rb +0 -1
- data/tracks/ruby/exercises/proverb/proverb_test.rb +1 -3
- data/tracks/ruby/exercises/queen-attack/example.rb +3 -1
- data/tracks/ruby/exercises/queen-attack/queen_attack_test.rb +34 -8
- data/tracks/ruby/exercises/robot-simulator/robot_simulator_test.rb +1 -1
- data/tracks/ruby/exercises/strain/strain_test.rb +2 -2
- data/tracks/ruby/exercises/tournament/.version +1 -0
- data/tracks/ruby/exercises/tournament/example.rb +54 -0
- data/tracks/ruby/exercises/tournament/example.tt +23 -0
- data/tracks/ruby/exercises/tournament/tournament_test.rb +92 -0
- data/tracks/ruby/exercises/transpose/.version +1 -0
- data/tracks/ruby/exercises/transpose/example.rb +14 -0
- data/tracks/ruby/exercises/transpose/example.tt +22 -0
- data/tracks/ruby/exercises/transpose/transpose_test.rb +303 -0
- data/tracks/ruby/lib/bowling_cases.rb +46 -0
- data/tracks/ruby/lib/isogram_cases.rb +1 -1
- data/tracks/ruby/lib/tournament_cases.rb +45 -0
- data/tracks/ruby/lib/transpose_cases.rb +45 -0
- data/tracks/rust/config.json +2 -0
- data/tracks/rust/exercises/bowling/.gitignore +7 -0
- data/tracks/rust/exercises/bowling/Cargo.toml +3 -0
- data/tracks/rust/exercises/bowling/example.rs +134 -0
- data/tracks/rust/exercises/bowling/tests/bowling.rs +373 -0
- data/tracks/rust/exercises/grains/.gitignore +7 -0
- data/tracks/rust/exercises/grains/Cargo.toml +3 -0
- data/tracks/rust/exercises/grains/example.rs +11 -0
- data/tracks/rust/exercises/grains/src/lib.rs +7 -0
- data/tracks/rust/exercises/grains/tests/grains.rs +63 -0
- data/tracks/rust/problems.md +2 -0
- data/tracks/scala/README.md +38 -0
- data/tracks/scala/config.json +20 -74
- data/tracks/scala/exercises/accumulate/src/test/scala/accumulate_test.scala +4 -0
- data/tracks/scala/exercises/allergies/src/test/scala/allergies_test.scala +11 -0
- data/tracks/scala/exercises/alphametics/build.sbt +6 -0
- data/tracks/scala/exercises/alphametics/example.scala +125 -0
- data/tracks/scala/exercises/alphametics/src/main/scala/.keep +0 -0
- data/tracks/scala/exercises/alphametics/src/test/scala/AlphameticsTest.scala +62 -0
- data/tracks/scala/exercises/atbash-cipher/src/test/scala/atbash_test.scala +8 -0
- data/tracks/scala/exercises/bank-account/src/test/scala/BankAccountTest.scala +4 -0
- data/tracks/scala/exercises/binary/src/test/scala/binary_test.scala +13 -0
- data/tracks/scala/exercises/binary-search-tree/src/test/scala/BstTest.scala +11 -0
- data/tracks/scala/exercises/bowling/Example.scala +116 -0
- data/tracks/scala/exercises/bowling/build.sbt +3 -0
- data/tracks/scala/exercises/bowling/src/main/scala/Bowling.scala +11 -0
- data/tracks/scala/exercises/bowling/src/test/scala/BowlingSuite.scala +237 -0
- data/tracks/scala/exercises/clock/src/test/scala/ClockTest.scala +50 -0
- data/tracks/scala/exercises/connect/README.md +17 -0
- data/tracks/scala/exercises/connect/src/test/scala/ConnectTest.scala +7 -0
- data/tracks/scala/exercises/crypto-square/src/test/scala/{CrytpoSquareTest.scala → CryptoSquareTest.scala} +9 -0
- data/tracks/scala/exercises/custom-set/src/test/scala/CustomSetTest.scala +36 -0
- data/tracks/scala/exercises/difference-of-squares/src/test/scala/squares_test.scala +8 -0
- data/tracks/scala/exercises/forth/src/test/scala/ForthTest.scala +22 -0
- data/tracks/scala/exercises/hexadecimal/src/test/scala/HexadecimalTest.scala +8 -0
- data/tracks/scala/exercises/kindergarten-garden/src/test/scala/GardenTest.scala +5 -0
- data/tracks/scala/exercises/largest-series-product/src/test/scala/SeriesTest.scala +2 -0
- data/tracks/scala/exercises/linked-list/src/test/scala/DequeTest.scala +4 -0
- data/tracks/scala/exercises/luhn/src/test/scala/LuhnTest.scala +4 -0
- data/tracks/scala/exercises/matrix/src/test/scala/MatrixTest.scala +2 -0
- data/tracks/scala/exercises/minesweeper/src/test/scala/MinesweeperTest.scala +6 -0
- data/tracks/scala/exercises/nth-prime/src/test/scala/PrimeTest.scala +5 -0
- data/tracks/scala/exercises/ocr-numbers/src/test/scala/OcrTest.scala +15 -0
- data/tracks/scala/exercises/octal/src/test/scala/OctalTest.scala +7 -0
- data/tracks/scala/exercises/parallel-letter-frequency/src/test/scala/FrequencyTest.scala +8 -0
- data/tracks/scala/exercises/pascals-triangle/src/test/scala/PascalsTriangleTest.scala +5 -0
- data/tracks/scala/exercises/pig-latin/src/test/scala/PigLatinTest.scala +4 -0
- data/tracks/scala/exercises/pythagorean-triplet/src/test/scala/PythagoreanTripletTest.scala +3 -0
- data/tracks/scala/exercises/queen-attack/src/test/scala/QueensTest.scala +5 -0
- data/tracks/scala/exercises/robot-simulator/src/test/scala/RobotTest.scala +16 -8
- data/tracks/scala/exercises/say/src/test/scala/SayTest.scala +34 -17
- data/tracks/scala/exercises/scrabble-score/src/test/scala/scrabble_score_test.scala +6 -0
- data/tracks/scala/exercises/secret-handshake/src/test/scala/SecretHandshakeTest.scala +18 -9
- data/tracks/scala/exercises/series/src/test/scala/SeriesTest.scala +4 -2
- data/tracks/scala/exercises/sieve/src/test/scala/SieveTest.scala +8 -4
- data/tracks/scala/exercises/simple-cipher/src/test/scala/CipherTest.scala +17 -9
- data/tracks/scala/exercises/sublist/src/test/scala/sublist_test.scala +17 -0
- data/tracks/scala/exercises/trinary/src/test/scala/TrinaryTest.scala +14 -7
- data/tracks/scala/exercises/wordy/src/test/scala/WordProblemTest.scala +28 -14
- data/tracks/scala/project/Build.scala +3 -3
- data/tracks/scala/testgen/src/main/scala/BowlingTestGenerator.scala +57 -0
- data/tracks/sml/config.json +41 -6
- data/tracks/sml/exercises/flatten-array/example.sml +6 -0
- data/tracks/sml/exercises/flatten-array/test_flatten_array.sml +10 -0
- data/tracks/sml/exercises/nth-prime/example.sml +46 -0
- data/tracks/sml/exercises/nth-prime/test_nth_prime.sml +14 -0
- data/tracks/sml/exercises/raindrops/example.sml +9 -0
- data/tracks/sml/exercises/raindrops/raindrops.sml +2 -0
- data/tracks/sml/exercises/raindrops/test_raindrops.sml +95 -0
- data/tracks/swift/config.json +269 -328
- data/tracks/swift/exercises/pangram/PangramExample.swift +17 -0
- data/tracks/swift/exercises/pangram/PangramTest.swift +43 -0
- data/tracks/swift/xcodeProject/xSwift.xcodeproj/project.pbxproj +16 -0
- metadata +95 -3
data/tracks/swift/config.json
CHANGED
@@ -3,594 +3,535 @@
|
|
3
3
|
"language": "Swift",
|
4
4
|
"repository": "https://github.com/exercism/xswift",
|
5
5
|
"active": true,
|
6
|
-
"problems": [
|
7
|
-
"hello-world"
|
8
|
-
,"leap"
|
9
|
-
,"hamming"
|
10
|
-
,"word-count"
|
11
|
-
,"etl"
|
12
|
-
,"anagram"
|
13
|
-
,"nucleotide-count"
|
14
|
-
,"phone-number"
|
15
|
-
,"grade-school"
|
16
|
-
,"robot-name"
|
17
|
-
,"perfect-numbers"
|
18
|
-
,"allergies"
|
19
|
-
,"accumulate"
|
20
|
-
,"sum-of-multiples"
|
21
|
-
,"twelve-days"
|
22
|
-
,"space-age"
|
23
|
-
,"gigasecond"
|
24
|
-
,"meetup"
|
25
|
-
,"triangle"
|
26
|
-
,"scrabble-score"
|
27
|
-
,"roman-numerals"
|
28
|
-
,"prime-factors"
|
29
|
-
,"raindrops"
|
30
|
-
,"bob"
|
31
|
-
,"strain"
|
32
|
-
,"atbash-cipher"
|
33
|
-
,"crypto-square"
|
34
|
-
,"rna-transcription"
|
35
|
-
,"sieve"
|
36
|
-
,"luhn"
|
37
|
-
,"series"
|
38
|
-
,"pig-latin"
|
39
|
-
,"pythagorean-triplet"
|
40
|
-
,"difference-of-squares"
|
41
|
-
,"secret-handshake"
|
42
|
-
,"clock"
|
43
|
-
,"simple-linked-list"
|
44
|
-
,"linked-list"
|
45
|
-
,"wordy"
|
46
|
-
,"tournament"
|
47
|
-
,"simple-cipher"
|
48
|
-
,"acronym"
|
49
|
-
,"grains"
|
50
|
-
,"custom-set"
|
51
|
-
,"nth-prime"
|
52
|
-
,"kindergarten-garden"
|
53
|
-
,"robot-simulator"
|
54
|
-
,"queen-attack"
|
55
|
-
,"binary-search"
|
56
|
-
,"binary-search-tree"
|
57
|
-
,"largest-series-product"
|
58
|
-
,"matrix"
|
59
|
-
,"house"
|
60
|
-
,"minesweeper"
|
61
|
-
,"ocr-numbers"
|
62
|
-
,"food-chain"
|
63
|
-
,"palindrome-products"
|
64
|
-
,"pascals-triangle"
|
65
|
-
,"saddle-points"
|
66
|
-
,"poker"
|
67
|
-
,"dominoes"
|
68
|
-
,"all-your-base"
|
69
|
-
,"bracket-push"
|
70
|
-
,"bowling"
|
71
|
-
,"run-length-encoding"
|
72
|
-
],
|
73
6
|
"exercises": [
|
74
7
|
{
|
75
|
-
"difficulty": 1,
|
76
|
-
"slug": "hello-world",
|
8
|
+
"difficulty": 1,
|
9
|
+
"slug": "hello-world",
|
77
10
|
"topics": [
|
78
|
-
"Text formatting",
|
11
|
+
"Text formatting",
|
79
12
|
"Optional values"
|
80
13
|
]
|
81
|
-
},
|
14
|
+
},
|
82
15
|
{
|
83
|
-
"difficulty": 1,
|
84
|
-
"slug": "leap",
|
16
|
+
"difficulty": 1,
|
17
|
+
"slug": "leap",
|
85
18
|
"topics": [
|
86
19
|
"Integers"
|
87
20
|
]
|
88
|
-
},
|
21
|
+
},
|
89
22
|
{
|
90
|
-
"difficulty": 1,
|
91
|
-
"slug": "gigasecond",
|
23
|
+
"difficulty": 1,
|
24
|
+
"slug": "gigasecond",
|
92
25
|
"topics": [
|
93
26
|
"Dates"
|
94
27
|
]
|
95
|
-
},
|
28
|
+
},
|
96
29
|
{
|
97
|
-
"difficulty": 1,
|
98
|
-
"slug": "difference-of-squares",
|
30
|
+
"difficulty": 1,
|
31
|
+
"slug": "difference-of-squares",
|
99
32
|
"topics": [
|
100
33
|
"Integers"
|
101
34
|
]
|
102
|
-
},
|
35
|
+
},
|
103
36
|
{
|
104
|
-
"difficulty": 1,
|
105
|
-
"slug": "rna-transcription",
|
37
|
+
"difficulty": 1,
|
38
|
+
"slug": "rna-transcription",
|
106
39
|
"topics": [
|
107
|
-
"Strings",
|
40
|
+
"Strings",
|
108
41
|
"Transforming"
|
109
42
|
]
|
110
|
-
},
|
43
|
+
},
|
111
44
|
{
|
112
|
-
"difficulty": 1,
|
113
|
-
"slug": "sum-of-multiples",
|
45
|
+
"difficulty": 1,
|
46
|
+
"slug": "sum-of-multiples",
|
114
47
|
"topics": [
|
115
|
-
"Lists",
|
48
|
+
"Lists",
|
116
49
|
"Transforming"
|
117
50
|
]
|
118
|
-
},
|
51
|
+
},
|
119
52
|
{
|
120
|
-
"difficulty": 1,
|
121
|
-
"slug": "space-age",
|
53
|
+
"difficulty": 1,
|
54
|
+
"slug": "space-age",
|
122
55
|
"topics": [
|
123
|
-
"Discriminated unions",
|
56
|
+
"Discriminated unions",
|
124
57
|
"Floating-point numbers"
|
125
58
|
]
|
126
|
-
},
|
59
|
+
},
|
127
60
|
{
|
128
|
-
"difficulty": 2,
|
129
|
-
"slug": "bob",
|
61
|
+
"difficulty": 2,
|
62
|
+
"slug": "bob",
|
130
63
|
"topics": [
|
131
|
-
"Strings",
|
64
|
+
"Strings",
|
132
65
|
"Control-flow (if-else statements)"
|
133
66
|
]
|
134
|
-
},
|
67
|
+
},
|
135
68
|
{
|
136
|
-
"difficulty": 2,
|
137
|
-
"slug": "grains",
|
69
|
+
"difficulty": 2,
|
70
|
+
"slug": "grains",
|
138
71
|
"topics": [
|
139
72
|
"Integers"
|
140
73
|
]
|
141
|
-
},
|
74
|
+
},
|
142
75
|
{
|
143
|
-
"difficulty": 2,
|
144
|
-
"slug": "hamming",
|
76
|
+
"difficulty": 2,
|
77
|
+
"slug": "hamming",
|
145
78
|
"topics": [
|
146
|
-
"Strings",
|
79
|
+
"Strings",
|
147
80
|
"Filtering"
|
148
81
|
]
|
149
|
-
},
|
82
|
+
},
|
150
83
|
{
|
151
|
-
"difficulty": 2,
|
152
|
-
"slug": "nucleotide-count",
|
84
|
+
"difficulty": 2,
|
85
|
+
"slug": "nucleotide-count",
|
153
86
|
"topics": [
|
154
|
-
"Maps",
|
87
|
+
"Maps",
|
155
88
|
"Strings"
|
156
89
|
]
|
157
|
-
},
|
90
|
+
},
|
158
91
|
{
|
159
|
-
"difficulty": 2,
|
160
|
-
"slug": "accumulate",
|
92
|
+
"difficulty": 2,
|
93
|
+
"slug": "accumulate",
|
161
94
|
"topics": [
|
162
|
-
"Recursion",
|
95
|
+
"Recursion",
|
163
96
|
"Transforming"
|
164
97
|
]
|
165
|
-
},
|
98
|
+
},
|
166
99
|
{
|
167
|
-
"difficulty": 2,
|
168
|
-
"slug": "raindrops",
|
100
|
+
"difficulty": 2,
|
101
|
+
"slug": "raindrops",
|
169
102
|
"topics": [
|
170
|
-
"Text formatting",
|
103
|
+
"Text formatting",
|
171
104
|
"Filtering"
|
172
105
|
]
|
173
|
-
},
|
106
|
+
},
|
174
107
|
{
|
175
|
-
"difficulty": 2,
|
176
|
-
"slug": "grade-school",
|
108
|
+
"difficulty": 2,
|
109
|
+
"slug": "grade-school",
|
177
110
|
"topics": [
|
178
|
-
"Maps",
|
111
|
+
"Maps",
|
179
112
|
"Sorting"
|
180
113
|
]
|
181
|
-
},
|
114
|
+
},
|
182
115
|
{
|
183
|
-
"difficulty": 2,
|
184
|
-
"slug": "etl",
|
116
|
+
"difficulty": 2,
|
117
|
+
"slug": "etl",
|
185
118
|
"topics": [
|
186
|
-
"Maps",
|
119
|
+
"Maps",
|
187
120
|
"Transforming"
|
188
121
|
]
|
189
|
-
},
|
122
|
+
},
|
190
123
|
{
|
191
|
-
"difficulty": 3,
|
192
|
-
"slug": "clock",
|
124
|
+
"difficulty": 3,
|
125
|
+
"slug": "clock",
|
193
126
|
"topics": [
|
194
|
-
"Time",
|
127
|
+
"Time",
|
195
128
|
"Structural equality"
|
196
129
|
]
|
197
|
-
},
|
130
|
+
},
|
198
131
|
{
|
199
|
-
"difficulty": 3,
|
200
|
-
"slug": "triangle",
|
132
|
+
"difficulty": 3,
|
133
|
+
"slug": "triangle",
|
201
134
|
"topics": [
|
202
|
-
"Integers",
|
135
|
+
"Integers",
|
203
136
|
"Discriminated unions"
|
204
137
|
]
|
205
|
-
},
|
138
|
+
},
|
206
139
|
{
|
207
|
-
"difficulty": 3,
|
208
|
-
"slug": "robot-name",
|
140
|
+
"difficulty": 3,
|
141
|
+
"slug": "robot-name",
|
209
142
|
"topics": [
|
210
|
-
"Randomness",
|
143
|
+
"Randomness",
|
211
144
|
"Strings"
|
212
145
|
]
|
213
|
-
},
|
146
|
+
},
|
214
147
|
{
|
215
|
-
"difficulty": 3,
|
216
|
-
"slug": "scrabble-score",
|
148
|
+
"difficulty": 3,
|
149
|
+
"slug": "scrabble-score",
|
217
150
|
"topics": [
|
218
151
|
"Transforming"
|
219
152
|
]
|
220
|
-
},
|
153
|
+
},
|
221
154
|
{
|
222
|
-
"difficulty": 3,
|
223
|
-
"slug": "kindergarten-garden",
|
155
|
+
"difficulty": 3,
|
156
|
+
"slug": "kindergarten-garden",
|
224
157
|
"topics": [
|
225
|
-
"Parsing",
|
158
|
+
"Parsing",
|
226
159
|
"Enumerations"
|
227
160
|
]
|
228
|
-
},
|
161
|
+
},
|
229
162
|
{
|
230
|
-
"difficulty": 3,
|
231
|
-
"slug": "queen-attack",
|
163
|
+
"difficulty": 3,
|
164
|
+
"slug": "queen-attack",
|
232
165
|
"topics": [
|
233
166
|
"Tuples"
|
234
167
|
]
|
235
|
-
},
|
168
|
+
},
|
236
169
|
{
|
237
|
-
"difficulty": 3,
|
238
|
-
"slug": "strain",
|
170
|
+
"difficulty": 3,
|
171
|
+
"slug": "strain",
|
239
172
|
"topics": [
|
240
|
-
"Sequences",
|
173
|
+
"Sequences",
|
241
174
|
"Filtering"
|
242
175
|
]
|
243
|
-
},
|
176
|
+
},
|
244
177
|
{
|
245
|
-
"difficulty": 3,
|
246
|
-
"slug": "sieve",
|
178
|
+
"difficulty": 3,
|
179
|
+
"slug": "sieve",
|
247
180
|
"topics": [
|
248
|
-
"Filtering",
|
181
|
+
"Filtering",
|
249
182
|
"Mathematics"
|
250
183
|
]
|
251
|
-
},
|
184
|
+
},
|
252
185
|
{
|
253
|
-
"difficulty": 3,
|
254
|
-
"slug": "phone-number",
|
186
|
+
"difficulty": 3,
|
187
|
+
"slug": "phone-number",
|
255
188
|
"topics": [
|
256
|
-
"Parsing",
|
189
|
+
"Parsing",
|
257
190
|
"Transforming"
|
258
191
|
]
|
259
|
-
},
|
192
|
+
},
|
260
193
|
{
|
261
|
-
"difficulty": 3,
|
262
|
-
"slug": "perfect-numbers",
|
194
|
+
"difficulty": 3,
|
195
|
+
"slug": "perfect-numbers",
|
263
196
|
"topics": [
|
264
|
-
"Integers",
|
197
|
+
"Integers",
|
265
198
|
"Discriminated unions"
|
266
199
|
]
|
267
|
-
},
|
200
|
+
},
|
268
201
|
{
|
269
|
-
"difficulty": 3,
|
270
|
-
"slug": "robot-simulator",
|
202
|
+
"difficulty": 3,
|
203
|
+
"slug": "robot-simulator",
|
271
204
|
"topics": [
|
272
|
-
"Records",
|
205
|
+
"Records",
|
273
206
|
"Tuples"
|
274
207
|
]
|
275
|
-
},
|
208
|
+
},
|
276
209
|
{
|
277
|
-
"difficulty": 3,
|
278
|
-
"slug": "binary-search",
|
210
|
+
"difficulty": 3,
|
211
|
+
"slug": "binary-search",
|
279
212
|
"topics": [
|
280
|
-
"Searching",
|
213
|
+
"Searching",
|
281
214
|
"Lists"
|
282
215
|
]
|
283
|
-
},
|
216
|
+
},
|
284
217
|
{
|
285
|
-
"difficulty": 3,
|
286
|
-
"slug": "secret-handshake",
|
218
|
+
"difficulty": 3,
|
219
|
+
"slug": "secret-handshake",
|
287
220
|
"topics": [
|
288
|
-
"Bitwise operations",
|
221
|
+
"Bitwise operations",
|
289
222
|
"Lists"
|
290
223
|
]
|
291
|
-
},
|
224
|
+
},
|
292
225
|
{
|
293
|
-
"difficulty": 4,
|
294
|
-
"slug": "word-count",
|
226
|
+
"difficulty": 4,
|
227
|
+
"slug": "word-count",
|
295
228
|
"topics": [
|
296
|
-
"Strings",
|
297
|
-
"Maps",
|
229
|
+
"Strings",
|
230
|
+
"Maps",
|
298
231
|
"Transforming"
|
299
232
|
]
|
300
|
-
},
|
233
|
+
},
|
301
234
|
{
|
302
|
-
"difficulty": 4,
|
303
|
-
"slug": "allergies",
|
235
|
+
"difficulty": 4,
|
236
|
+
"slug": "allergies",
|
304
237
|
"topics": [
|
305
|
-
"Enumerations",
|
306
|
-
"Bitwise operations",
|
238
|
+
"Enumerations",
|
239
|
+
"Bitwise operations",
|
307
240
|
"Filtering"
|
308
241
|
]
|
309
|
-
},
|
242
|
+
},
|
310
243
|
{
|
311
|
-
"difficulty": 4,
|
312
|
-
"slug": "twelve-days",
|
244
|
+
"difficulty": 4,
|
245
|
+
"slug": "twelve-days",
|
313
246
|
"topics": [
|
314
|
-
"Text formatting",
|
247
|
+
"Text formatting",
|
315
248
|
"Algorithms"
|
316
249
|
]
|
317
|
-
},
|
250
|
+
},
|
318
251
|
{
|
319
|
-
"difficulty": 4,
|
320
|
-
"slug": "meetup",
|
252
|
+
"difficulty": 4,
|
253
|
+
"slug": "meetup",
|
321
254
|
"topics": [
|
322
255
|
"Dates"
|
323
256
|
]
|
324
|
-
},
|
257
|
+
},
|
325
258
|
{
|
326
|
-
"difficulty": 4,
|
327
|
-
"slug": "anagram",
|
259
|
+
"difficulty": 4,
|
260
|
+
"slug": "anagram",
|
328
261
|
"topics": [
|
329
|
-
"Strings",
|
262
|
+
"Strings",
|
330
263
|
"Filtering"
|
331
264
|
]
|
332
|
-
},
|
265
|
+
},
|
333
266
|
{
|
334
|
-
"difficulty": 4,
|
335
|
-
"slug": "series",
|
267
|
+
"difficulty": 4,
|
268
|
+
"slug": "series",
|
336
269
|
"topics": [
|
337
|
-
"Strings",
|
338
|
-
"Lists",
|
270
|
+
"Strings",
|
271
|
+
"Lists",
|
339
272
|
"Transforming"
|
340
273
|
]
|
341
|
-
},
|
274
|
+
},
|
342
275
|
{
|
343
|
-
"difficulty": 4,
|
344
|
-
"slug": "simple-linked-list",
|
276
|
+
"difficulty": 4,
|
277
|
+
"slug": "simple-linked-list",
|
345
278
|
"topics": [
|
346
279
|
"Lists"
|
347
280
|
]
|
348
|
-
},
|
281
|
+
},
|
349
282
|
{
|
350
|
-
"difficulty": 4,
|
351
|
-
"slug": "acronym",
|
283
|
+
"difficulty": 4,
|
284
|
+
"slug": "acronym",
|
352
285
|
"topics": [
|
353
|
-
"Strings",
|
286
|
+
"Strings",
|
354
287
|
"Transforming"
|
355
288
|
]
|
356
|
-
},
|
289
|
+
},
|
357
290
|
{
|
358
|
-
"difficulty": 4,
|
359
|
-
"slug": "matrix",
|
291
|
+
"difficulty": 4,
|
292
|
+
"slug": "matrix",
|
360
293
|
"topics": [
|
361
|
-
"Matrices",
|
294
|
+
"Matrices",
|
362
295
|
"Parsing"
|
363
296
|
]
|
364
|
-
},
|
297
|
+
},
|
365
298
|
{
|
366
|
-
"difficulty": 4,
|
367
|
-
"slug": "all-your-base",
|
299
|
+
"difficulty": 4,
|
300
|
+
"slug": "all-your-base",
|
368
301
|
"topics": [
|
369
|
-
"Integers",
|
302
|
+
"Integers",
|
370
303
|
"Transforming"
|
371
304
|
]
|
372
|
-
},
|
305
|
+
},
|
373
306
|
{
|
374
|
-
"difficulty": 4,
|
375
|
-
"slug": "largest-series-product",
|
307
|
+
"difficulty": 4,
|
308
|
+
"slug": "largest-series-product",
|
376
309
|
"topics": [
|
377
|
-
"Strings",
|
378
|
-
"Integers",
|
310
|
+
"Strings",
|
311
|
+
"Integers",
|
379
312
|
|
380
313
|
"Transforming"
|
381
314
|
]
|
382
|
-
},
|
315
|
+
},
|
383
316
|
{
|
384
|
-
"difficulty": 4,
|
385
|
-
"slug": "house",
|
317
|
+
"difficulty": 4,
|
318
|
+
"slug": "house",
|
386
319
|
"topics": [
|
387
|
-
"Text formatting",
|
320
|
+
"Text formatting",
|
388
321
|
"Algorithms"
|
389
322
|
]
|
390
|
-
},
|
323
|
+
},
|
391
324
|
{
|
392
|
-
"difficulty": 4,
|
393
|
-
"slug": "pythagorean-triplet",
|
325
|
+
"difficulty": 4,
|
326
|
+
"slug": "pythagorean-triplet",
|
394
327
|
"topics": [
|
395
|
-
"Records",
|
396
|
-
"Integers",
|
328
|
+
"Records",
|
329
|
+
"Integers",
|
397
330
|
"Mathematics"
|
398
331
|
]
|
399
|
-
},
|
332
|
+
},
|
400
333
|
{
|
401
|
-
"difficulty": 4,
|
402
|
-
"slug": "saddle-points",
|
334
|
+
"difficulty": 4,
|
335
|
+
"slug": "saddle-points",
|
403
336
|
"topics": [
|
404
|
-
"Matrices",
|
337
|
+
"Matrices",
|
405
338
|
"Lists"
|
406
339
|
]
|
407
|
-
},
|
340
|
+
},
|
408
341
|
{
|
409
|
-
"difficulty": 4,
|
410
|
-
"slug": "pascals-triangle",
|
342
|
+
"difficulty": 4,
|
343
|
+
"slug": "pascals-triangle",
|
411
344
|
"topics": [
|
412
|
-
"Recursion",
|
413
|
-
"Lists",
|
345
|
+
"Recursion",
|
346
|
+
"Lists",
|
414
347
|
"Mathematics"
|
415
348
|
]
|
416
|
-
},
|
349
|
+
},
|
417
350
|
{
|
418
|
-
"difficulty": 4,
|
419
|
-
"slug": "prime-factors",
|
351
|
+
"difficulty": 4,
|
352
|
+
"slug": "prime-factors",
|
420
353
|
"topics": [
|
421
|
-
"Integers",
|
354
|
+
"Integers",
|
422
355
|
"Mathematics"
|
423
356
|
]
|
424
|
-
},
|
357
|
+
},
|
358
|
+
{
|
359
|
+
"difficulty": 4,
|
360
|
+
"slug": "pangram",
|
361
|
+
"topics": [
|
362
|
+
"Strings",
|
363
|
+
"Searching"
|
364
|
+
]
|
365
|
+
},
|
425
366
|
{
|
426
|
-
"difficulty": 5,
|
427
|
-
"slug": "roman-numerals",
|
367
|
+
"difficulty": 5,
|
368
|
+
"slug": "roman-numerals",
|
428
369
|
"topics": [
|
429
|
-
"Recursion",
|
370
|
+
"Recursion",
|
430
371
|
"Transforming"
|
431
372
|
]
|
432
|
-
},
|
373
|
+
},
|
433
374
|
{
|
434
|
-
"difficulty": 5,
|
435
|
-
"slug": "binary-search-tree",
|
375
|
+
"difficulty": 5,
|
376
|
+
"slug": "binary-search-tree",
|
436
377
|
"topics": [
|
437
|
-
"Searching",
|
378
|
+
"Searching",
|
438
379
|
"Trees"
|
439
380
|
]
|
440
|
-
},
|
381
|
+
},
|
441
382
|
{
|
442
|
-
"difficulty": 5,
|
443
|
-
"slug": "ocr-numbers",
|
383
|
+
"difficulty": 5,
|
384
|
+
"slug": "ocr-numbers",
|
444
385
|
"topics": [
|
445
|
-
"Parsing",
|
386
|
+
"Parsing",
|
446
387
|
"Pattern recognition"
|
447
388
|
]
|
448
|
-
},
|
389
|
+
},
|
449
390
|
{
|
450
|
-
"difficulty": 5,
|
451
|
-
"slug": "linked-list",
|
391
|
+
"difficulty": 5,
|
392
|
+
"slug": "linked-list",
|
452
393
|
"topics": [
|
453
394
|
"Lists"
|
454
395
|
]
|
455
|
-
},
|
396
|
+
},
|
456
397
|
{
|
457
|
-
"difficulty": 5,
|
458
|
-
"slug": "simple-cipher",
|
398
|
+
"difficulty": 5,
|
399
|
+
"slug": "simple-cipher",
|
459
400
|
"topics": [
|
460
|
-
"Strings",
|
461
|
-
"Algorithms",
|
401
|
+
"Strings",
|
402
|
+
"Algorithms",
|
462
403
|
"Transforming"
|
463
404
|
]
|
464
|
-
},
|
405
|
+
},
|
465
406
|
{
|
466
|
-
"difficulty": 5,
|
467
|
-
"slug": "atbash-cipher",
|
407
|
+
"difficulty": 5,
|
408
|
+
"slug": "atbash-cipher",
|
468
409
|
"topics": [
|
469
|
-
"Strings",
|
470
|
-
"Algorithms",
|
410
|
+
"Strings",
|
411
|
+
"Algorithms",
|
471
412
|
"Transforming"
|
472
413
|
]
|
473
|
-
},
|
414
|
+
},
|
474
415
|
{
|
475
|
-
"difficulty": 5,
|
476
|
-
"slug": "food-chain",
|
416
|
+
"difficulty": 5,
|
417
|
+
"slug": "food-chain",
|
477
418
|
"topics": [
|
478
|
-
"Text formatting",
|
419
|
+
"Text formatting",
|
479
420
|
"Algorithms"
|
480
421
|
]
|
481
|
-
},
|
422
|
+
},
|
482
423
|
{
|
483
|
-
"difficulty": 5,
|
484
|
-
"slug": "custom-set",
|
424
|
+
"difficulty": 5,
|
425
|
+
"slug": "custom-set",
|
485
426
|
"topics": [
|
486
427
|
"Sets"
|
487
428
|
]
|
488
|
-
},
|
429
|
+
},
|
489
430
|
{
|
490
|
-
"difficulty": 5,
|
491
|
-
"slug": "crypto-square",
|
431
|
+
"difficulty": 5,
|
432
|
+
"slug": "crypto-square",
|
492
433
|
"topics": [
|
493
|
-
"Strings",
|
494
|
-
"Algorithms",
|
434
|
+
"Strings",
|
435
|
+
"Algorithms",
|
495
436
|
"Transforming"
|
496
437
|
]
|
497
|
-
},
|
438
|
+
},
|
498
439
|
{
|
499
|
-
"difficulty": 5,
|
500
|
-
"slug": "luhn",
|
440
|
+
"difficulty": 5,
|
441
|
+
"slug": "luhn",
|
501
442
|
"topics": [
|
502
|
-
"Strings",
|
503
|
-
"Algorithms",
|
443
|
+
"Strings",
|
444
|
+
"Algorithms",
|
504
445
|
"Transforming"
|
505
446
|
]
|
506
|
-
},
|
447
|
+
},
|
507
448
|
{
|
508
|
-
"difficulty": 5,
|
509
|
-
"slug": "run-length-encoding",
|
449
|
+
"difficulty": 5,
|
450
|
+
"slug": "run-length-encoding",
|
510
451
|
"topics": [
|
511
|
-
"Algorithms",
|
452
|
+
"Algorithms",
|
512
453
|
"Transforming"
|
513
454
|
]
|
514
|
-
},
|
455
|
+
},
|
515
456
|
{
|
516
|
-
"difficulty": 6,
|
517
|
-
"slug": "tournament",
|
457
|
+
"difficulty": 6,
|
458
|
+
"slug": "tournament",
|
518
459
|
"topics": [
|
519
|
-
"Text formatting",
|
460
|
+
"Text formatting",
|
520
461
|
"Parsing"
|
521
462
|
]
|
522
|
-
},
|
463
|
+
},
|
523
464
|
{
|
524
|
-
"difficulty": 6,
|
525
|
-
"slug": "bowling",
|
465
|
+
"difficulty": 6,
|
466
|
+
"slug": "bowling",
|
526
467
|
"topics": [
|
527
468
|
"Algorithms"
|
528
469
|
]
|
529
|
-
},
|
470
|
+
},
|
530
471
|
{
|
531
|
-
"difficulty": 6,
|
532
|
-
"slug": "nth-prime",
|
472
|
+
"difficulty": 6,
|
473
|
+
"slug": "nth-prime",
|
533
474
|
"topics": [
|
534
475
|
"Mathematics"
|
535
476
|
]
|
536
|
-
},
|
477
|
+
},
|
537
478
|
{
|
538
|
-
"difficulty": 6,
|
539
|
-
"slug": "palindrome-products",
|
479
|
+
"difficulty": 6,
|
480
|
+
"slug": "palindrome-products",
|
540
481
|
"topics": [
|
541
|
-
"Strings",
|
542
|
-
"Tuples",
|
482
|
+
"Strings",
|
483
|
+
"Tuples",
|
543
484
|
"Algorithms"
|
544
485
|
]
|
545
|
-
},
|
486
|
+
},
|
546
487
|
{
|
547
|
-
"difficulty": 6,
|
548
|
-
"slug": "pig-latin",
|
488
|
+
"difficulty": 6,
|
489
|
+
"slug": "pig-latin",
|
549
490
|
"topics": [
|
550
|
-
"Strings",
|
491
|
+
"Strings",
|
551
492
|
"Transforming"
|
552
493
|
]
|
553
|
-
},
|
494
|
+
},
|
554
495
|
{
|
555
|
-
"difficulty": 7,
|
556
|
-
"slug": "bracket-push",
|
496
|
+
"difficulty": 7,
|
497
|
+
"slug": "bracket-push",
|
557
498
|
"topics": [
|
558
|
-
"Parsing",
|
499
|
+
"Parsing",
|
559
500
|
"Strings"
|
560
501
|
]
|
561
|
-
},
|
502
|
+
},
|
562
503
|
{
|
563
|
-
"difficulty": 7,
|
564
|
-
"slug": "minesweeper",
|
504
|
+
"difficulty": 7,
|
505
|
+
"slug": "minesweeper",
|
565
506
|
"topics": [
|
566
|
-
"Parsing",
|
507
|
+
"Parsing",
|
567
508
|
"Transforming"
|
568
509
|
]
|
569
|
-
},
|
510
|
+
},
|
570
511
|
{
|
571
|
-
"difficulty": 7,
|
572
|
-
"slug": "dominoes",
|
512
|
+
"difficulty": 7,
|
513
|
+
"slug": "dominoes",
|
573
514
|
"topics": [
|
574
|
-
"Lists",
|
515
|
+
"Lists",
|
575
516
|
"Tuples"
|
576
517
|
]
|
577
|
-
},
|
518
|
+
},
|
578
519
|
{
|
579
|
-
"difficulty": 7,
|
580
|
-
"slug": "wordy",
|
520
|
+
"difficulty": 7,
|
521
|
+
"slug": "wordy",
|
581
522
|
"topics": [
|
582
|
-
"Parsing",
|
583
|
-
"Strings",
|
523
|
+
"Parsing",
|
524
|
+
"Strings",
|
584
525
|
"Transforming"
|
585
526
|
]
|
586
|
-
},
|
527
|
+
},
|
587
528
|
{
|
588
|
-
"difficulty": 8,
|
589
|
-
"slug": "poker",
|
529
|
+
"difficulty": 8,
|
530
|
+
"slug": "poker",
|
590
531
|
"topics": [
|
591
|
-
"Discriminated unions",
|
592
|
-
"Parsing",
|
593
|
-
"Sorting",
|
532
|
+
"Discriminated unions",
|
533
|
+
"Parsing",
|
534
|
+
"Sorting",
|
594
535
|
"Games"
|
595
536
|
]
|
596
537
|
}
|